gpt4 book ai didi

javascript - 使用 es6 制作 uniqBy

转载 作者:行者123 更新时间:2023-12-03 02:17:28 24 4
gpt4 key购买 nike

const uniqBy = (arr, fn) => {
let res = []
const hash = new Set()
for (let i = 0; i < arr.length; i++) {
const foo = typeof fn === 'function' ? fn(arr[i]) : arr[i][fn]
if (!hash.has(foo)) {
res.push(arr[i])
hash.add(foo)
}
}
return res
}

console.log(uniqBy([2.1, 1.2, 2.3], Math.floor)) // [2.1, 1.2]
console.log(uniqBy([{
x: 1
}, {
x: 2
}, {
x: 1
}], 'x')) // [{x: 1 },{ x: 2 }]

这是我实现uniqBy的代码,但是代码太多了,我想用更少的代码得到更好的方法

最佳答案

 const uniqBy = (arr, fn, set = new Set) => arr.filter(el => (v => !set.has(v) && set.add(v))(typeof fn === "function" ? fn(el) : el[fn]));

关于javascript - 使用 es6 制作 uniqBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49314402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com