gpt4 book ai didi

javascript - 使用javascript,根据值删除除最后一个对象之外的所有对象

转载 作者:行者123 更新时间:2023-12-04 02:02:52 25 4
gpt4 key购买 nike

我有一个对象。

[
{
"name":"keith",
"skill":"kool",
"job" :"rapper"
},{
"name":"mike",
"skill":"killer",
"job" :"rapper"
},{
"name":"Alan",
"skill":"js",
"job" :"slacker"
},{
"name":"Dre",
"skill":"Dr",
"job" :"rapper"
},{
"name":"Garth",
"skill":"Guitar",
"job":"singer"
}

]

我只需要每个作业的最后一个对象。可以删除所有其他作业。我也需要保持顺序,因此预期的对象将如下所示:

[{
"name":"Alan",
"skill":"js",
"job" :"slacker"
},{
"name":"Dre",
"skill":"Dr",
"job" :"rapper"
},{
"name":"Garth",
"skill":"Guitar",
"job":"singer"
}
]

“job”值可以是任意字符串,未知。

如何删除仅基于特定字段的除最后一个重复对象之外的所有对象?

最佳答案

您需要遍历您的数组(我将其命名为作业,请参阅演示)并将具有唯一作业的对象推送到另一个数组中。我创建了一个辅助函数来检查新数组中是否已经存在具有特定作业的对象。

JSfiddle demo

var newarray=[]; //array to store objects with unique job property

//loop through the jobs array
for(var i=0;i<jobs.length;i++){

if(!checkProp(jobs[i].job, newarray)){
newarray.push(jobs[i]);
}
}

console.log(newarray); //display output in console

//helper function to check if there is an object in the array with a
//certain value for the job property
function checkProp( prop, arr ) {
for(var i = 0; i < arr.length; i++) {
if( arr[i].job === prop )
return true;
}
return false;
}

关于javascript - 使用javascript,根据值删除除最后一个对象之外的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28838322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com