Javascript ES6-从现有数据创建新对象,只使用一个属性,并删除任何重复项?
我有一个对象数组作为数据返回给我,我希望创建一组新的数据,同时保留旧的数据供将来使用 我试图循环使用给定的数据来创建一组新的数据,该数据不仅包含年龄,而且还删除任何重复项。我不太确定从哪里开始Javascript ES6-从现有数据创建新对象,只使用一个属性,并删除任何重复项?,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有一个对象数组作为数据返回给我,我希望创建一组新的数据,同时保留旧的数据供将来使用 我试图循环使用给定的数据来创建一组新的数据,该数据不仅包含年龄,而且还删除任何重复项。我不太确定从哪里开始 data = [ { "firstName": "John", "lastName": "Doe", "age": "99" }, { "firstName": "Jimmy", "lastName"
data = [
{
"firstName": "John",
"lastName": "Doe",
"age": "99"
},
{
"firstName": "Jimmy",
"lastName": "Hendricks",
"age": "50"
},
{
"firstName": "William",
"lastName": "Shakespeare",
"age": "22"
},
{
"firstName": "Jane",
"lastName": "Eyre",
"age": "50"
}
]
我想要的结果是这样的:
newData = [
{"age": "99"},
{"age": "50"},
{"age": "22"}
]
或者,您可以使用Set消除重复项:
// ages variable contain just the ages
const ages = data.map(person => person.age);
// new Set(ages) will remove duplicated values:
const newSet = Array.from(new Set(ages)).map(age => ({ age: age }));
为此,您可以使用并结合使用:
常数数据=[
{
名字:约翰,
姓:Doe,,
年龄:99
},
{
名字:吉米,
姓:亨德里克斯,
年龄:50
},
{
名字:威廉,
姓氏:莎士比亚,
年龄:22
},
{
名字:简,
姓:爱,
年龄:50
}
]
const newdata=data
.map{age}=>{age}//convert`{age:}`
.filterfunction{age}{
const isUnique=!this.hasage;//检查是否已存在
this.addage;//仍要添加
return isUnique;//过滤器保持唯一性
},新一套//使用集合作为筛选器的“this”上下文
console.lognewdata 哇,这么多方法!
这里是另一个,纯粹的功能:
数据=[{姓:约翰,姓:多伊,年龄:99},{姓:吉米,姓:亨德里克斯,年龄:50},{姓:威廉,姓:莎士比亚,年龄:22},{姓:简,姓:爱,年龄:50}];
console.log
Object.keysdata.reduceobj,o=>
obj[o.age]=1,obj,{}
.mapk=>{age:k}
你可以循环提取年龄数据,检查是否已经添加了。非常简洁,也非常有意义!谢谢!!
// ages variable contain just the ages
const ages = data.map(person => person.age);
// new Set(ages) will remove duplicated values:
const newSet = Array.from(new Set(ages)).map(age => ({ age: age }));