そのような配列があるとします:
let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李"}, {id: 3, name: "小孙"}, {id: 1, name: "小周"}, {id: 2, name: "小陈"}, ]
同じ ID 2 を持つ 2 つのオブジェクトなど、配列内の重複する ID を持つオブジェクトを削除したいです -
{id: 2, name: "小李"}和{id: 2, name: "小陈"} (去掉任何一个都可以)
どうすればよいでしょうか?
実際、配列オブジェクトの場合、従来の重複排除メソッドは無力であり、forEach() や filter() などの反復メソッドは使いにくいです。真にエレガントな重複排除を実現できるのは、ES5 で新しく追加されたメソッドです。 reduce()
reduce() メソッドは最初のパラメータとしてコールバック関数を受け取り、コールバック関数は次の 4 つのパラメータを受け取ります: 最初の値または cur =>次の値で重ね合わせます。
2. 重ね合わせる次の値
4. > 配列自体;Reduce の一般的な方法は、配列内の各項目を継続的に重ね合わせて返すことです
let log = console.log.bind(console);
let arr = [1,2,3,4,5,6];
arr = arr.reduce((cur,next) => { return cur + next;
})
log(arr); // 21
上記のコードの最終結果は 1+2 であることがわかります。 + 3+4+5+6 = 21;
let log = console.log.bind(console); let arr = [1,2,3,4,5,6]; arr = arr.reduce((cur,next) => { return cur + next; },0) //指定cur的类型为Number并且初始值为0,当设为1时,最终打印的值为22log(arr); // 21人を印刷した後、重複排除された配列を取得できます。
以上が配列内のオブジェクトを与えることからjsのreduce()を再考してくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。