- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在这段代码中,我被困在了 _.uniqBy(array,iteratee)
,this
iteratee
可以是函数,也可以是字符串var sourceArray = [ { id: 1, name: 'bob' },
{ id: 1, name: 'bill' },
{ id: 1, name: 'bill' } ,
{id: 2,name: 'silly'},
{id: 2,name: 'billy'}]
function uniqBy (inputArray, callback) {
return inputArray.filter(callback)
}
var inputFunc = function (item) {
return item.name
}
// var destArray = _.uniqBy(sourceArray,'name')
var destArray = uniqBy(sourceArray, inputFunc)
console.log('destArray', destArray)
我们将不胜感激任何线索。
最佳答案
使用 Map
的 ES6 uniqBy
复杂度为 O(n):
const uniqBy = (arr, predicate) => {
const cb = typeof predicate === 'function' ? predicate : (o) => o[predicate];
return [...arr.reduce((map, item) => {
const key = (item === null || item === undefined) ?
item : cb(item);
map.has(key) || map.set(key, item);
return map;
}, new Map()).values()];
};
const sourceArray = [
{ id: 1, name: 'bob' },
{ id: 1, name: 'bill' },
null,
{ id: 1, name: 'bill' } ,
{ id: 2,name: 'silly'},
{ id: 2,name: 'billy'},
null,
undefined
];
console.log('id string: ', uniqBy(sourceArray, 'id'));
console.log('name func: ', uniqBy(sourceArray, (o) => o.name));
关于javascript - 将 lodash _.uniqBy() 转换为原生 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40801349/
我有数组: [ [ '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.
我是一名优秀的程序员,十分优秀!