gpt4 book ai didi

javascript - 通过匹配值数组来对 javascript 对象文字进行子集化

转载 作者:行者123 更新时间:2023-11-28 17:22:27 25 4
gpt4 key购买 nike

我需要对对象文字进行子集化 myData那些属于 group 的元素B year匹配 group 中找到的内容答:

var myData = [{"year":1,"group":"A","value":0.1},
{"year":2,"group":"A","value":0.2},
{"year":3,"group":"A","value":0.2},
{"year":4,"group":"A","value":0.1},
{"year":5,"group":"A","value":0.1},
{"year":1,"group":"B","value":0.1},
{"year":2,"group":"B","value":0.2},
{"year":3,"group":"B","value":0.2},
{"year":4,"group":"B","value":0.2},
{"year":5,"group":"B","value":0.9},
{"year":6,"group":"B","value":0.1}] ;

我可以使用.filter()获得所需的输出:

mySubset = myData.filter((d) => {return d.group == "B" && d.year < 6;});

结果:

[{"year":1,"group":"B","value":0.1},
{"year":2,"group":"B","value":0.2},
{"year":3,"group":"B","value":0.2},
{"year":4,"group":"B","value":0.2},
{"year":5,"group":"B","value":0.9}];

但这并不理想。我想要一个通用的、通用的解决方案,不依赖于“手动”输入最大值 (6)。另外,year可能不是一个序列(例如 [2, 1, 4, 5] )。

本质上,障碍在于条件的第二部分 ( d.year < 6 )。我需要一些与以下位置的值相匹配的东西:

let x = []

for(i = 0; i < myData.filter((d) => {return d.group == "A";}).length; i++){
x.push(myData[i].year);
}

谢谢!

最佳答案

你已经成功了一半;现在您已经有了“A”组中所有年份的数组,您只需检查“B”组中的年份是否在该数组中。您可以使用 .includes() 来实现此目的。

mySubset = myData.filter((d) => {return d.group == "B" && x.includes(d.year);});

关于javascript - 通过匹配值数组来对 javascript 对象文字进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192282/

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