Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript对象中查找对_Javascript_Angularjs - Fatal编程技术网

在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的对。我计划创建另一个包含这两

我基本上有以下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的对。我计划创建另一个包含这两条记录的对象。因此,它看起来像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()
。就像你说的,你应该只在其他都失败的情况下在这里发布。