I have an array of objects that looks like this:
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"}
...
];
As you can see, some names are repeated. I want to get a new array with names only, but if some name repeats I don't want to add it again. I want this array:
var newArray = ["Name1", "Name2"];
I'm trying to do this with map
:
var newArray = array.map((a) => {
return a.name;
});
But the problem is that this returns:
newArray = ["Name1", "Name1", "Name2", "Name2"];
How can I set some condition inside map
, so it won't return an element that already exists? I want to do this with map
or some other ECMAScript 5 or ECMAScript 6 feature.
Question&Answers:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…