Javascript 如果重复,则仅返回数组中索引较高的元素
我可以使用此函数从阵列中删除所有重复项:Javascript 如果重复,则仅返回数组中索引较高的元素,javascript,Javascript,我可以使用此函数从阵列中删除所有重复项: function make_unique(array) { return array.reduce(function(p, c) { if (p.indexOf(c) < 0) p.push(c); return p; }, []); }; 它将为我提供元素1(chris)、2(susan)、4(melissa)、5(steve)、6(bob)更简单的“使独特”功能,使用: 需要“从尾部”过滤吗?使
function make_unique(array) {
return array.reduce(function(p, c) {
if (p.indexOf(c) < 0) p.push(c);
return p;
}, []);
};
它将为我提供元素1(chris)、2(susan)、4(melissa)、5(steve)、6(bob)更简单的“使独特”功能,使用:
需要“从尾部”过滤吗?使用:
但请记住,这没有任何意义:如果要删除重复项,最早和最新实例之间没有区别,因此它们的顺序应该完全无关
如果顺序真的很重要,那么在消除重复项的歧义方面,您没有告诉我们一些重要的事情,您应该在代码中公开这些内容(当然也可以放弃要求)如何使用我认为您不必创建util函数
在underline.js中
var array = ["bob", "chris", "susan", "steve", "melissa", "steve", "bob"]
var result = _.uniq(array.reverse()).reverse();
使用
lastIndexOf
可以避免两个反向操作array.filter(函数(v,idx){returnarray.lastIndexOf(v)==idx;})代码>
var uniques = array.filter(function(v,idx) {
return array.indexOf(v)===idx;
})
var uniques = array.filter(function(v,idx) {
return array.lastIndexOf(v)===idx;
});
var array = ["bob", "chris", "susan", "steve", "melissa", "steve", "bob"]
var result = _.uniq(array.reverse()).reverse();