var arr1 = [{
id: 1,
city: 'London',
'checked': false
},
{
id: 2,
city: 'NYC',
'checked': false
},
{
id: 3,
city: 'Paris',
'checked': false
},
{
id: 4,
city: 'Madrid',
'checked': false
}];
var arr2 = [{
id: 1,
city: 'Madrid',
'checked': true
},
{
id: 2,
city: 'Paris',
'checked': false
},
{
id: 3,
city: 'NYC',
'checked': true
},
{
id: 4,
city: 'London',
'checked': false
}];
var arr3 = [{
id: 1,
city: 'London',
'checked': false
},
{
id: 2,
city: 'NYC',
'checked': true
},
{
id: 3,
city: 'Paris',
'checked': false
},
{
id: 4,
city: 'Madrid',
'checked': true
}];
已更新-arr3中的id属性的顺序应与arr1中的id属性的顺序相同
通过这种方法,它使用了更多的现代方法,使用了map
和find
等函数,而且我个人认为这种实现非常简单。
如果您不熟悉“箭头函数”语法,您可以在网上找到大量的文档,比如下面的文档。但正如您所看到的,这种方法的优点在于它干净、简洁和简单。
这个实现有点类似于@holydragon提供的答案,但是当您使用foreach
函数时,您允许出现副作用,至少在这个实现中,通过使用map
,这应该会减少代码中出现副作用的机会。
js lang-js prettyprint-override">var arr1 = [{id:1,city:"London",checked:!1},{id:2,city:"NYC",checked:!1},{id:3,city:"Paris",checked:!1},{id:4,city:"Madrid",checked:!1}];
var arr2 = [{id:1,city:"Madrid",checked:!0},{id:2,city:"Paris",checked:!1},{id:3,city:"NYC",checked:!0},{id:4,city:"London",checked:!1}];
var arr3 = arr1.map(({...o}) => {
o.checked = arr2.find(x => x.city === o.city).checked;
return o;
});
console.log(arr3);
// If you want a one line solution...
var arr4 = arr1.map(({...o}) => Object.assign(o, {checked : arr2.find(x => x.city === o.city).checked}));
console.log(arr4);
假设我们有一个这样定义的对象A: 出于某种原因,我需要创建第二个对象B,它只具有对象A的前两个属性: 所以我的问题是:将对象A复制到对象B的最佳方法是什么?我一直在逐个复制获取者和设置者的属性,但有些事情告诉我一定有更好的方法来做到这一点!特别是当对象将具有很多属性时,我必须编写一行又一行的代码,只是为了将它们全部复制到第二个对象B... 多谢了:) 编辑:我一直被一个“另一个问题的可能重复”提醒
这是我的代码: 我想将的值设置为,我该怎么做?我试过,
我发现自己经常遇到这种模式。我有一个从api中返回的对象数组,我只需要操作所有对象中的一个属性。 有没有办法使用ES6/Babel或Typescript让该模式更具声明性? 寻找一些巧妙的破坏技巧或类似的东西。
因此,我的基本内容是:、和。(我有一些其他类来建立Arduino连接) 这是我在中的start方法: 编辑:以下是我的操作。java: 我什么都试过了,但没有成功...如果有人能帮我,我会非常感激的。
将js数组中对象的属性值相等的对象组合成一个新的数组元素。 可以使用reduce、map等函数 比如: 如果 groupId 为-1,则删除其groupId属性,并按顺序将该元素加入新的数组中即可 另外:arr数组中相同groupId的元素在数组中的位置总是相邻的。(groupId为-1的除外) 比如:
本文向大家介绍写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象相关面试题,主要包含被问及写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象时的应答技巧和注意事项,需要的朋友参考一下 function Dog(name,age){ this.name=name; this.age=age; };