const testA = [
{
name: "10EK"
},
{
name: "10BC"
},
{
name: "10BC"
},
{
name: "10EK"
},
{
name:"10EK"
},
{
name:"10GB"
},
{
name: "10GB"
}
];
和 @戡玉 的方法相比,这个方法可以保留原对象(如果对象不只
name
属性呢)。但是在以
name
作为唯一值判断的情况下,其他属性可能会存在不同,那到底留哪一个对象就会有讲究。按上面的算法,留下来的是最后出现的那个。如果想留最早出现的那个,可以先把数组
reverse()
再按上面的方法进行处理。但要注意的是reverse()
会改变原数组。如果不想改变原数组可以这样:或者直接使用遍历的办法(还是需要
Set
或对象来辅助判重)这样做(留先出现的)甚至可以保持原来的顺序。
如果想留最后出现的那个,同样可以先
reverse()
再来forEach()
。如果需要保持原来的顺序,再把结果reverse()
一次。另一种方法是:直接用索引号,从后往前遍历,遇到需要加入result
的使用unshift
代替push
来加入。总之……方法很多!