いてづきブログ

情シスでやってみたことの備忘録

ObjectのArrayから要素を削除する

javascriptのarrayにはremoveはないのでspliceを使用する。

const ary = [1, 2, 3] ;

ary.splice(0, 1);

console.log(ary);  // [2, 3]

 

spliceは配列に対して、第1引数のindexから、第2引数の数だけ要素を排除する。

Array.prototype.splice() - JavaScript | MDN

 

なので、削除するためにはindexが必要。

値から削除するためにはindexOfを使う。

const ary = [1, 2, 3] ;

const index = ary.indexOf(1);  // 1を削除する

ary.splice(index, 1);

console.log(ary);  // [2, 3]

 

Objectの配列からオブジェクト内のフィールドの値を参照して削除したい場合、indexOfでは取得できないのでfindIndexを使う。

 

const ary = [{ key: 1, value: 'hoge'}, { key: 2, value: 'moge'}, {key:3, value: 'piyo'}];

const index = ary.findIndex(x => x.key === 1);

ary.splice(index, 1);

console.log(ary);  // [{key:2, value: 'moge'}, {key:3, value: 'piyo'}]

 

ただしfindIndexはIEでは動作しないことに注意。

Array.prototype.findIndex() - JavaScript | MDN