gpt4 book ai didi

javascript - 如何获取两个数组对象之间的差异项?

转载 作者:行者123 更新时间:2023-12-02 16:59:45 26 4
gpt4 key购买 nike

这里我有两个数组,但它们不是简单的数组。见下文:

var a = [{"id":1,"in":1,"num":3000},{"id":2,"in":1,"num":1500},{"id":3,"in":1,"num":1000}]
var b = [{"id":1,"in":0,"num":1000},{"id":2,"in":0,"num":1000}]

for (var i = a.length - 1; i >= 0; i--) {
for (var j =b.length - 1; j >= 0; j--) {
if( a[i]['id'] == b[j]['id']){
a[i]['rest'] = a[i]['num'] - b[j]['num']
}
}
}
console.log(a)

但我无法获取 id 3,因为 id 3 不在 b 数组中。请帮忙。

这就是我想要的答案

a = [
{"id":1,"in":1,"num":3000,"rest":2000},
{"id":2,"in":1,"num":1500,"rest":500},
{"id":3,"in":1,"num":1000,"rest":1000}
]

谢谢

最佳答案

所以您想从 a 中的相应“num”中减去 b 中的“num”,以获取 a 的每个元素?不仅仅是迭代 a 并检查它是否也包含在 b 中:

var a = [{"id":1,"in":1,"num":3000},{"id":2,"in":1,"num":1500},{"id":3,"in":1,"num":1000}]
var b = [{"id":1,"in":0,"num":1000},{"id":2,"in":0,"num":1000}]

for (var i = a.length - 1; i >= 0; i--) {
a[i]['rest'] = a[i]['num'];
for (var j =b.length - 1; j >= 0; j--) {
if( a[i]['id'] == b[j]['id']){
a[i]['rest'] = a[i]['num'] - b[j]['num'];
break;
}
}
}

关于javascript - 如何获取两个数组对象之间的差异项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25844573/

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