过滤对象数组,使该对象的最后一次出现具有相同的特定属性

Sup*_*per 3 javascript arrays filter

你如何过滤一个对象数组,使得该对象的最后一次出现具有相同的foo支柱?即

给定:

[
{foo:1,id:1},
{foo:1,id:2},
{foo:2,id:3}
]
Run Code Online (Sandbox Code Playgroud)

我想要回来:

[
{foo:1,id:2},
{foo:2,id:3}
Run Code Online (Sandbox Code Playgroud)

我正在使用es6所以我可以从这里开始:

 this.data.filter((item,index,self)=> {
     return self.findIndex(o => o.foo === item.foo);
    })
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 5

var index = {};
var data = [{foo:1,id:1},{foo:1,id:2},{foo:2,id:3}];

data.forEach(item => index[item.foo] = item);

index[1];
// {foo:1,id:2}

Object.values(index)
// [{foo:1,id:2},{foo:2,id:3}]
Run Code Online (Sandbox Code Playgroud)