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();