user8758206:
それは配列に各項目を追加することがないように見えるが、私は、変数宣言や生命維持を使用してその場で配列を作成しようとしています。例えば、このHTMLを取ります:
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
<div>test</div>
そして、このJavaScript:
const divs = document.querySelectorAll('div');
const divsTwo = [...divs]; // not IE compatible
const divsThree = (function() {
let arr = [];
for (let item of divs) {
arr.push[item];
}
return arr;
})();
// logging
console.log(divs); // correctly logs node list
console.log(divsTwo); // correctly logs array (right?)
console.log(divsThree); //* logs an empty (incorrect) array
私は基本的にただ複製するdivsTwo
(ビアdivsThree
)ので、それのIEの互換性。3番目の変数が第二と同じではありません理由を缶誰かのポイント?ここで任意の助けてくれてありがとう
ゲスト:
コメントのショーは、あなたが使用しているArray.prototype.push
誤っ。それでも、より良い方法があります。
使用Array.from配列に任意の反復可能を有効にします-
const divs =
document.querySelectorAll('div')
const myArr =
Array.from(divs)
console.log(myArr)
// [div, div, div, ..., div]