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 コメント:
コメントを投稿