- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我有数组: [ [ '245', '0', '0.0100', '245,0,0.01' ], [ '245', '1', '0.0100', '245,1,0.01' ], [ '208',
const uniqBy = (arr, fn) => { let res = [] const hash = new Set() for (let i = 0; i arr.filte
const data = [ {id: "001", failedReason: [1000]}, {id: "001", failedReason: [1001]}, {id: "001", fai
JSFiddle Example let obj = [{'vote':999,'name':'D'}, {'vote':341,'name':'A'},
在这段代码中,我被困在了 _.uniqBy(array,iteratee),this iteratee 可以是函数,也可以是字符串 在哪里放置条件以检查属性的唯一性,因为 itratee 函数可以是任
这是我使用 lodash 的代码 console.log('stackList2', stackList2); console.log('stackList2.length', stackList2.
我是一名优秀的程序员,十分优秀!