私は最近、HTML文書からいくつかのノードの値を抽出する必要がありました。私は、条件を満たすノードのリストを返すquerySelectorAllを使ってノードを取得しました。私は前にarr.map使用していたので、私は(動作しませんでした)このようにそれを実行しようとしました:なぜquerySelectorAllの結果にマップを使用できないのですか?
var elems = document.querySelectorAll('select option:checked');
values = elems.map(function(obj) {return obj.value});
私はMDNにドキュメントを読んだとき、私は私ではなく、このようなものを使用していたことを見ました:
var elems = document.querySelectorAll('select option:checked');
var values = Array.prototype.map.call(elems, function(obj) {
return obj.value;
});
私の質問は、私がquerySelectorAllから取得する配列である場合、私は、他の配列の場合と同様に、なぜ私は、最初の式を使用することはできませんか?
'querySelectorAll'は配列を返しません。' array-like-object'を返します。ドキュメントを参照している場合、完全にそれを読んでください... – Rayon
[___ 'NodeList'は配列ではありません___](https://developer.mozilla.org/en-US/docs/Web/API/NodeList#Why_is_NodeList_not_an_Array) – Rayon