Javascript 使用键作为条件合并数组数据
编辑: 我试图将arr1合并到arr2中,但当keyid值相同时除外 这应该是输出:Javascript 使用键作为条件合并数组数据,javascript,jquery,arrays,google-apps-script,Javascript,Jquery,Arrays,Google Apps Script,编辑: 我试图将arr1合并到arr2中,但当keyid值相同时除外 这应该是输出: var arr1 = [{id=1}, {id=3] var arr2 = [{id=1, text=1}, {id=2, text=2}, {id=4, text=4}] 为此,我尝试使用if arr1.indexOf(arr2)!=0在arr3中推送值;但是不起作用 var arr3 = [{id=1, text=1}, {id=2, text=2}, {id=3, text=3}, {id=4, tex
var arr1 = [{id=1}, {id=3]
var arr2 = [{id=1, text=1}, {id=2, text=2}, {id=4, text=4}]
为此,我尝试使用if arr1.indexOf(arr2)!=0
在arr3中推送值;但是不起作用
var arr3 = [{id=1, text=1}, {id=2, text=2}, {id=3, text=3}, {id=4, text=4}]
var arr1=[{id=1,text=1},{id=3,text=3}]
var arr2=[{id=1,text=1},{id=2,text=2},{id=4,text=4}]
var arr3=[];
对于(变量i=0;i
有什么帮助吗?修改点:
- 在脚本中,
始终是arr1.indexOf(arr2[i].id)
。因为-1
的每个元素都是一个对象。在这种情况下,arr1
不能直接使用。因此,在这种情况下,indexOf
被复制到arr2
。并且,不使用arr3
的值。我认为这可能是你的问题的原因arr1
- 在你的问题中,你说你想要
。但是在您的脚本中,键似乎从var arr3=[{id=1,text=1},{id=2,text=2},{id=3,text=3},{id=4,text=4}]
更改为text
,就像stars
stars:arr2[i]。text
arr2
的值合并到arr1
var arr1=[{id:1,text:1},{id:3,text:3}];
var arr2=[{id:1,text:1},{id:2,text:2},{id:4,text:4}];
对于(变量i=0;iid==arr2[i].id)){
arr1.push({id:arr2[i].id,text:arr2[i].text});
}
}
arr1.sort((a,b)=>a.id>b.id?1:-1);
console.log(arr1)
在您的脚本中,stars的stars:arr2[i]。text
是text
?可能重复,我会在这里寻找您问题的答案:这也是无效的JS:var arr1=[{id=1},{id=3]
->var arr1=[{id:1},{id:3}
var arr1 = [{id=1, text=1}, {id=3, text=3}]
var arr2 = [{id=1, text=1}, {id=2, text=2}, {id=4, text=4}]
var arr3 = [];
for (var i = 0; i < arr2.length; i++) {
if (arr1.indexOf(arr2[i].id) !== 0) {
arr3.push({
id: arr2[i].id,
stars: arr2[i].text
});
}
}