titleが構文エラーだったので直した。 https://t.co/CamX2e6iwT
— FUJI Goro (@__gfx__) 2018年1月23日
これで new Array(n) に等価かな?https://t.co/8r9aS5CXaY https://t.co/KH1fRMUAVE
— Dan Kogai (@dankogai) 2018年1月23日
等価かどうか実際に確認してみた。(for…in、Safari(Web Browser))
少し違ったり。length プロパティが列挙可能ではない。(for…in の問題?)
HTML5
<pre id="output0"></pre> <input id="n0" type="number" step="1" value="10"> <button id="run0">run</button> <button id="clear0">clear</button> <script src="sample.js"></script>
JavaScript
let div0 = document.querySelector('#graph0'),
pre0 = document.querySelector('#output0'),
btn0 = document.querySelector('#run0'),
btn1 = document.querySelector('#clear0'),
input_n0 = document.querySelector('#n0'),
inputs = [input_n0],
p = (x) => pre0.textContent += x + '\n',
newArray1 = (n) => {
var a = Object.create(null);
Object.setPrototypeOf(a, Array.prototype);
a.length = n;
return a;
},
// var を let に変えただけ
newArray2 = (n) => {
let a = Object.create(null);
Object.setPrototypeOf(a, Array.prototype);
a.length = n;
return a;
};
let output = () => {
let n = parseInt(input_n0.value, 10),
a1 = newArray1(n),
a2 = newArray2(n),
a3 = new Array(n);
p(`newArray1(${n})`);
for(var prop in a1) {
p(prop);
}
p(`newArray2(${n})`);
for(var prop in a2) {
p(prop);
}
p(`new Array(${n})`);
for(var prop in a3) {
p(prop);
}
};
inputs.forEach((input) => input.onchange = output);
btn0.onclick = output;
btn1.onclick = () => pre0.textContent = '';
output();
0 コメント:
コメントを投稿