在JavaScript对象中查找对
我基本上有以下JavaScript对象:在JavaScript对象中查找对,javascript,angularjs,Javascript,Angularjs,我基本上有以下JavaScript对象: records: [ { id: 1, name: michael, guid: 12345 }, { id: 2, name: jason, guid: 12345 }, { id: 3, name: fox, guid: 54321 }, { id: 4, name: rachel, guid: 54321 } ]; 我要做的是找到具有相同guid的对。我计划创建另一个包含这两
records: [
{
id: 1,
name: michael,
guid: 12345
},
{
id: 2,
name: jason,
guid: 12345
},
{
id: 3,
name: fox,
guid: 54321
},
{
id: 4,
name: rachel,
guid: 54321
}
];
我要做的是找到具有相同guid的对。我计划创建另一个包含这两条记录的对象。因此,它看起来像ff:
records: [
{
id: 1,
name: michael,
guid: 12345,
id2: 2,
name2: jason
},
{
id: 3,
name: fox,
guid: 54321,
id2: 4,
name2: rachel
}];
如何在JavaScript中实现这一点?或者有某种功能,我可以从同一个对象中组合它们?这样我就不需要再创造一个了。谢谢您您想首先解决您的语法问题。字符串必须被引用。不能使用“:”分配变量,必须使用“=”。有很多方法可以解决这个问题,这里有一些方法。下一次,最好发布一些你已经尝试过的代码,展示你正在努力学习,而不仅仅是得到答案
var records = [{
id: 1,
name: 'michael',
guid: 12345
},
{
id: 2,
name: 'jason',
guid: 12345
},
{
id: 3,
name: 'fox',
guid: 54321
},
{
id: 4,
name: 'rachel',
guid: 54321
}
];
// vanilla js
var groups = {};
records.forEach(function(obj) {
if (!groups[obj.guid]) {
groups[obj.guid] = [obj];
} else {
groups[obj.guid].push(obj);
}
});
// lodash
var lo_groups = _.groupBy(records, 'guid');
console.log(groups, lo_groups);
这将为您提供独特的记录
var recrds=[
{
“id”:1,
“姓名”:“迈克尔”,
“guid”:12345
},
{
“id”:2,
“姓名”:“杰森”,
“guid”:12345
},
{
“id”:3,
“姓名”:“狐狸”,
“guid”:54321
},
{
“id”:4,
“姓名”:“雷切尔”,
“guid”:54321
}
];
函数printRecords(){
let unique=[…新集合(recrds.map(item=>item.guid));
返回唯一值;
}
这是无效的JSONIMPLOKED,因为它不是JSON对象。如果您有两个以上的名称,该怎么办?管理/存储可编程数据的不切实际的方法。它是一个JS对象或JavaScript对象。无论如何,看看数组函数filter()
,map()
和reduce()
。就像你说的,你应该只在其他都失败的情况下在这里发布。