JSでは複数の配列を結合し、配列の重複要素を除去します.
1614 ワード
昨夜書いたデモさんは、伝来した複数の配列を統合する方法を書いて、重複要素を除去して、具体的に次のように実現しました.
配列の重さについて、以下の4つをまとめました.は、元の配列に戻らなければならないことを要求しています.配列を循環してもいいです.現在の下付き要素と現在の要素が配列の中のlastIndexと異なる場合、この要素を削除します.コードは以下の通りです. は新しい配列に戻ることを要求し、元の配列を循環させ、現在の要素が新しい配列に存在しない場合(すなわちindexは−1)を判断し、 は、新しい配列に戻ることを要求しています.一番簡単なのは、配列の は、新しい配列に戻ることを要求し、重いときは重複要素を削除すること、すなわち[1,2,2,3]を入力し、[1,3]を返すならば、配列の
function merge(bigArray) {
let array = [];
const middeleArray = bigArray.reduce((a,b) => {
return a.concat(b);
});
middeleArray.forEach((arrItem) => {
if(array.indexOf(arrItem) == -1){
array.push(arrItem);
}
});
return array;
}
console.log(merge([[4,5],[1,1],[2,3],[4,2,3]]));
複数の配列が入ってくるので、2次元配列に入ることができ、配列のreduce
方法を使用して、配列内のネストされた配列を逐次結合することができる.配列の重さについて、以下の4つをまとめました.
arr.forEach((item,index) => {
if(index != arr.lastIndexOf(item)){
arr.splice(index,1);
}
})
push
を新しい配列に進める、すなわちdemoの書き方を定義することができる.filter
方法を使用して、現在の下付き要素と配列の中のlastIndexと同じ要素をフィルタリングし、具体的には以下のように実現されています.function removeSame(arr) {
return arr.filter((item,index) =>
index ===arr.lastIndexOf(item));
}
注:ES 6を使用すると、=>
の後に語句が一つしかない場合は、{ }
およびreturn
を省略することができます.filter
方法を利用して、現在の要素のindexとlastIndexと同じ(第3項とは異なる)要素を選別して、具体的には以下のように実現することができる.function removeSame(arr) {
return arr.filter((item) =>
arr.indexOf(item) === arr.lastIndexOf(item));
}
思い付くことができるのはしばらくこれらで、補充を歓迎して、私はMiss_です.cheng