callbackPractice uniq 应该返回一个数组到回调,其中所有重复项都被删除,但我丢失了一些东西。请帮忙。
function uniq(collection, fn) {
var uniqCollection = collection.filter(function(item, index, self) {
return self.indexOf(item) === index;
});
}
function uniq(collection, fn) {
var obj = {};
var uniqArr = [];
for (var key in obj) {
uniqArr.push(key);
}
return fn(uniqArr);
}
var names = ['Tyler', 'Cahlan', 'Ryan', 'Colt', 'Tyler', 'Blaine', 'Cahlan'];
uniq(names, function(uniqArr) {
console.log('The new names array with all the duplicate items removed is ', uniqArr);
});
最佳答案
将所有数组值放入一个对象中,然后列出所有键 - 这样就可以消除所有重复项:
function uniq(arr, cb){
var obj = {};
for (var i in arr) {
var v = arr[i];
obj[v] = true;
}
var uniqArr = Object.keys(obj);
(cb || Function.prototype)(uniqArr);
}
关于javascript - 我正在尝试删除重复项并返回结果。我缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35138904/