javascriptにはHTM Collectionのように配列に似ているけど配列ではないオブジェクトがあります。
Array.from() メソッドを使うことで指定した各要素を配列として生成します。
では早速見ていきましょう。
Array.fromメソッドについて
Array.from(data [,func [,that]])
data | 配列ライクなオブジェクト |
func | 値変換に使用する関数 |
that | thisが表す値 |
Array.from()の使い方
html
<ul>
<li id="apple" class="list">りんご</li>
<li id="strawberry" class="list">いちご</li>
<li id="banana" class="list">ばなな</li>
<li id="grape" class="list">ぶどう</li>
</ul>
<button id="btn">ボタン</button>
javascript
<script>
function sample(){
var elem = document.getElementsByClassName("list");
//配列に変換
var arr = Array.from(elem);
arr.forEach(function(elem){
//配列に入っているidを確認
console.log(elem.id);
});
//検索
var filterText = arr.filter(function(arr) {
return arr.id === "apple";
});
console.log(filterText);
}
let button = document.getElementById('btn');
button.onclick = sample;
ボタンを押すと関数が実行され配列の変換や検索を行います。
コンソールログを見ながら確認してください。
配列に変換
var arr = Array.from(elem);
配列に変換するときは Array.from()メソッドを使います。
配列のidを取得
arr.forEach(function(elem){
//配列に入っているidを確認
console.log(elem.id);
});
コンソールログで確認すると下記のようになります。idを出しています。
apple
strawberry
banana
grape
filterで条件に合う配列を検索
//検索
var filterText = arr.filter(function(arr) {
return arr.id === "apple";
});
console.log(filterText);
上記はidにappleの配列を検索しています。
コメント