Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6-从现有数据创建新对象,只使用一个属性,并删除任何重复项?_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

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 }));