[3,2,6].reduce.((aa, bb) => , ) // 注意傳了2個引數,第乙個為**,第二個為初始值 aa對於陣列物件,傳統的去重方法無能為力,至於foreach()、filter()等迭代方法也不好使;真正能做到優雅去重的,是es5新增加的乙個方法——reduce()單純陣列去重:
let arr = new set([1,1,3,3,'bb','bb','cc'])
[...arr] // 列印出 1, 3, "bb", "cc"
高手給的,完美方法
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來區分物件 注意,此區分對於物件內部屬性名排列順序無效。但對於空格啥的都有效。...