我有一个对象数组,看起来像这样:
var array = [
{id:123, value:"value1", name:"Name1"},
{id:124, value:"value2", name:"Name1"},
{id:125, value:"value3", name:"Name2"},
{id:126, value:"value4", name:"Name2"}
...
];
正如您所看到的,一些名称是重复的。我想获得一个仅包含名称的新数组,但如果某个名称重复,我不想再添加它。我想要这个数组:
如上所述,有些名称是重复的。我想获取一个仅含名称的新数组,但如果某个名称重复,则不希望再次添加它。我需要这个数组:
var newArray = ["Name1", "Name2"];
我试图使用 map
来实现这个:
var newArray = array.map((a) => {
return a.name;
});
但问题在于这会返回:
newArray = ["Name1", "Name1", "Name2", "Name2"];
如何在map
中设置某些条件,以便它不会返回已存在的元素? 我想使用map
或其他ECMAScript 5或ECMAScript 6功能来实现这一点。
Set
吗?https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set - ppasler