Javascript 如何获取两个数组对象之间的差异项?
这里我有两个数组,但它们不是简单的数组。请参见以下内容:Javascript 如何获取两个数组对象之间的差异项?,javascript,Javascript,这里我有两个数组,但它们不是简单的数组。请参见以下内容: 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.l
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}
]
thk那么,对于a的每个元素,您想从a中相应的“num”中减去b中的“num”?而不仅仅是迭代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;
}
}
}
您可以为
标志添加一些变量,以了解您是否拥有相同的id
,下面是一个代码示例
var flag;
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--)
flag = false;
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']
flag = true;
}
}
if(!flag) {
a[i]['rest'] = a[i]['num']
}
}
@AbdulJabbar如果项不在b数组中。只使用a的值。有什么问题吗?你能重新表述你的问题吗?就目前而言,这毫无意义:/你应该从['id'中得到什么?它不正确:(只需添加中断
,我想30mins@RyanYiada对不起,你什么意思?