js を使用して配列オブジェクトを重複排除する

序文

みなさん、こんにちは、今日は配列オブジェクトの重複排除の方法をいくつか紹介します. 配列オブジェクトの重複排除もよく使われるので共有します.

1.配列の内容

最初に配列を作成します。以下は、作成された配列です。

let arrs = [{
    
    
     id: '1',
     key: '1',
     value: '张三'
   }, {
    
    
     id: '3',
     key: '2',
     value: '李四'
   }, {
    
    
     id: '2',
     key: '3',
     value: '王五'
   }, {
    
    
     id: '1',
     key: '1',
     value: '赵六'
   }, {
    
    
     id: '1',
     key: '2',
     value: '马七'
}]

2. 取り外し方法

1.オブジェクトアクセス属性方式

コードは次のとおりです (例)。

let newArr = [];
    let obj = {
    
    };
    for (var i = 0; i < arrs.length; i++) {
    
    
       if (!obj[arrs[i].key]) {
    
    
         newArr.push(arrs[i])
         obj[arrs[i].key] = true
       }
    }
console.log(newArr);

2. Map() メソッド

コードは次のとおりです (例)。

let map = new Map();
for (let item of this.arrs) {
    
    
    map.set(item.id, item);
 }
this.arrs = [...map.values()];
console.log(this.arrs)

set メソッドは、キーに対応するキー値を設定し、Map 構造全体を返します。キーがすでに値を持っている場合、キーの値が更新されます。そうでない場合、キーは新しく生成されます。
values メソッドは、Map オブジェクトの値の iterator オブジェクトを返すことができます。

3.reduce() メソッド

reduce() メソッドはアキュムレータとして関数を受け取り、配列内の各値 (左から右へ) は最初に値に縮小されます

ここに画像の説明を挿入

const obj = {
    
    }
arr = arrs.reduce((total, next) => {
    
    
  obj[next.key] ? '' : obj[next.key] = true && total.push(next)
  return total
}, [])
console.log(arrs)

ここでもう1つ必要なのが、判定条件が2つ以上ある場合は、配列オブジェクトを重複排除して判定条件を追加することです。

const hasObj = {
    
    }
arrs = arrs.reduce((total, next) => {
    
    
   const filterKey = next.key + next.id;
   hasObj[filterKey] ? "" : hasObj[filterKey] = true && total.push(next)
   return total
}, [])
console.log(arrs)

結論:

以上がこの章の全内容です。お役に立てれば幸いです。

おすすめ

転載: blog.csdn.net/SqlloveSyn/article/details/129626971