gpt4 book ai didi

javascript - 在 JavaScript 对象数组中查找某些键的重复项并将相关键设置为 true

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:41:21 25 4
gpt4 key购买 nike

我有一个 JS 对象数组:

  var a = [{a:"a1",b:"b",c:"c",prop:false},
{a:"a1",b:"b",c:"c",prop:false},
{a:"a",b:"b",c:"c",prop:false},
{a:"a2",b:"b",c:"c",prop:false},
{a:"a3",b:"b",c:"c",prop:false},
{a:"a1",b:"b",c:"c",prop:false}];

我必须找到最后一个元素的副本,但不考虑键 prop:当我找到它们时,相关的 prop bool 值必须设置为 true

我做了世界上最简单的事情并且工作正常但我在徘徊是否有 JS 可以做的事情(没有第 3 方库),在“优雅”、现代性或性能方面更好:

var toTest = a[a.length-1];
for(var i=0;i<a.length;i++){
if(toTest.a==a[i].a && toTest.b==a[i].b && toTest.c==a[i].c){
a[i].prop = true;
a[a.length-1].prop = true;
}
}

感谢任何提示

最佳答案

您可以结合使用 Array.forEachArray.every。创建要测试的键列表,并在每次迭代中检查这些键并更新对象。

a[a.length-1].prop = true 在我看来没有必要,因为您没有删除该项目,因此它将在最后一次迭代中更新。

var a = [{a:"a1",b:"b",c:"c",prop:false},
{a:"a1",b:"b",c:"c",prop:false},
{a:"a",b:"b",c:"c",prop:false},
{a:"a2",b:"b",c:"c",prop:false},
{a:"a3",b:"b",c:"c",prop:false},
{a:"a1",b:"b",c:"c",prop:false}];
var toTest = a[a.length -1];
var keysToTest = ['a', 'b', 'c'];

a.forEach((o)=>{
var valid = keysToTest.every((k) => o[k] === toTest[k]);
if(valid){
o.prop = true;
}
});

console.log(a)

关于javascript - 在 JavaScript 对象数组中查找某些键的重复项并将相关键设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45935843/

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