概要
ES6の配列に使えるメソッドを簡単に試してみます。
forEach
forEachは前のブログ投稿にも出てきました。
配列test1に対して、全ての要素を加算し、最終的な合計値を出力しています。
次のようなコードを書きます。
let test1 = [1, 10, 20, 30, 60]; let sum = 0; test1.forEach(function(value) { sum += value; }); console.log(sum);
出力結果
Array(5) [ 2, 11, 21, 31, 61 ]
map
このメソッドは配列の要素を1つづつ、関数に引数として渡します。
関数から返された値は最終的に配列として返されます。
次のようなコードを書いて試してみます。
let test2 = [1, 10, 20, 30, 60]; test3 = test2.map(function(x) { return x * x; }); console.log(test2); console.log(test3);
出力結果
Array(5) [ 1, 10, 20, 30, 60 ] Array(5) [ 1, 100, 400, 900, 3600 ]
filter
配列要素の部分集合となる配列を返します。
次のようなコードを書いて試します。
let test4 = [1, 10, 20, 30, 60]; test5 = test4.filter(function(x) { return x > 15; }); console.log(test4); console.log(test5);
出力結果
Array(5) [ 1, 10, 20, 30, 60 ] Array(3) [ 20, 30, 60 ]
every
配列の各要素に対して、指定した関数内の演算結果をみます。演算結果が配列の全ての要素が真だった場合にはtrueを返します。(演算結果が偽の場合はfalseを返します)
次のコードを書いて試してみます。
//every let test6 = [1, 10, 20, 30, 60]; test7 = test6.every(function(x) { return x < 20; }); console.log(test6); console.log(test7); //some let test8 = [1, 10, 20, 30, 60]; test9 = test8.some(function(x) { return x < 20; }); console.log(test8); console.log(test9);
出力結果
Array(5) [ 1, 10, 20, 30, 60 ] false Array(5) [ 1, 10, 20, 30, 60 ] true
indexOf
要素の中から指定した値を持つ要素を検索して、見つかった場合は最初のインデックスを返す。
//indexOf let test12 = [1, 10, 20, 30, 60]; test13 = test12.indexOf(20); console.log(test12); console.log(test13);
出力結果
2
indexOfの例
const testArray = [1, 2, 3, 4, 5]; const elementToCheck = 3; if (testArray.indexOf(elementToCheck) !== -1) { console.log('配列内に存在する'); } else { console.log('配列内に存在しない'); }