🎴

JavaScript / TypeScript 配列操作まとめ(中級編)

2022/03/10に公開

以下の記事の続きです

https://zenn.dev/mkosakana/articles/1c9a9f083195e3

配列のコピー生成:slice

引数に何も指定しなければただのコピーです
指定した場合は、一部を抜粋して新たな配列をコピーしているというイメージです
(どちらも元の配列には何の影響も無し)

const array1 = [4, 3, 2, 1];
const array2 = array1.slice();

// コピーなので array2 に要素を追加しても array1 に変化はない
array2.push(700);

console.log(array1);
console.log(array2);

// 出力
[4, 3, 2, 1]
[4, 3, 2, 1, 700]
    

const array3 = [4, 3, 2, 1];
// インデックスが1の要素を含めそこからインデックス3の要素の前まで取り出す
const NewArray = array3.slice(1, 3);

console.log(NewArray);

// 出力
[3, 2]

他の配列と結合:concat

const array1 = [4, 3, 2, 1];
const array2 = [5, 6];

console.log(array1.concat(array2));

// 出力
[4, 3, 2, 1, 5, 6]

配列の要素を固定値で埋める(置き換える):fill

console.log([4, 5, 6, 7].fill(10));
// インデックスが1の要素を含めそこからインデックス3の要素の前まで埋める
console.log([4, 5, 6, 7].fill(10, 1, 3));

// 出力
[10, 10, 10, 10]
[4, 10, 10, 7]

1つでも true になるかどうか判定:some

some() 内での条件に当てはまるものを一つでも見つけ次第 true を返します

const array = [40, 30, 20, 10];

console.log(array.some(value => {
    return value > 20;
}));
console.log(array.some(value => {
    return value > 60;
}));

// 出力
true
false

全ての要素が true になるかどうか判定:every

配列の全要素が every() 内での条件に当てはまれば true を返します

const array = [40, 30, 20, 10];

console.log(array.every(value => {
    return value > 20;
}))

console.log(array.every(value => {
    return value < 1000;
}))

// 出力
false
true

Discussion