JS 陣列中物件去重 reduce 用法

2022-02-25 22:44:12 字數 751 閱讀 5226

[3,2,6].reduce.((aa, bb) => , ) // 注意傳了2個引數,第乙個為**,第二個為初始值 aa

單純陣列去重:

let arr = new set([1,1,3,3,'bb','bb','cc'])

[...arr] // 列印出 1, 3, "bb", "cc"

對於陣列物件,傳統的去重方法無能為力,至於foreach()、filter()等迭代方法也不好使;真正能做到優雅去重的,是es5新增加的乙個方法——reduce()

高手給的,完美方法

let log =console.log.bind(console);

let person =[,,

,,

,,

];let obj ={};

person = person.reduce((cur,next) =>,)

//設定cur預設型別為陣列,並且初始值為空的陣列

log(person);

高手總結:

使用時發現開 eslint 時,上面的表示式會報錯,換成以下條件即可:

let obj = {};
person = person.reduce((cur,next) => 

} // 不會報錯,也比較好懂了 (當物件裡沒有所傳屬性時,給屬性true並push陣列)

return

cur;

},)

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

js 陣列物件去重

var arr 方法1 利用物件訪問屬性的方法,判斷物件中是否存在key var result var obj for var i 0 i const result const obj for let i 0 i data.length i console.log result result con...

js陣列物件去重

function array return array.filter function value,index 由於物件屬性名為字串,通過typeof item item來區分1和 1 而通過json.stringnify來區分物件 注意,此區分對於物件內部屬性名排列順序無效。但對於空格啥的都有效。...