生命維持として機能していないノードのリストから、単純な配列を作成します

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番目の変数が第二と同じではありません理由を缶誰かのポイント?ここで任意の助けてくれてありがとう

Codepen:https://codepen.io/ns91/pen/JjdrZyP

ゲスト:

コメントのショーは、あなたが使用しているArray.prototype.push誤っ。それでも、より良い方法があります。

使用Array.from配列に任意の反復可能を有効にします-

const divs =
  document.querySelectorAll('div')

const myArr =
  Array.from(divs)

console.log(myArr)
// [div, div, div, ..., div]

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=30705&siteId=1