Javascript将数组项推送到命名索引



有一个JSON数组:

[{id: 1,客户端:"Microsoft"},{id: 2,客户端:"Microsoft"]},{id: 3, client: "Apple"}]

,我想通过"客户端"分组,但我在javascript中有困难。在PHP中,我通常会这样做:

$group = array();
foreach ($array as $item) {
    $group[ $item['client'] ] = $item;
}
return $group;

但是这个方法完全不能在javascript的多维数组

上工作
var group = [];
for ( i=0 ... ) {
  var client = array[i].client;
  group[ client ].push( array[i] );
}

我如何将上面的数组分组成这样:

[{"Microsoft":[{…}],"苹果":[{…}})

或者

[{client: "Microsoft", "items":[{…]}]}, {client: "Apple", items:[{…]}})

你需要一个对象,而不是一个数组:

var array = [{ id: 1, client: "Microsoft" },{ id: 2, client: "Microsoft" },{ id: 3, client: "Apple" }];
var group = {};
for (var i=0; i<array.length; i++) {
  var client = array[i].client;
  group[client] = group[client] || []; // create array for client if needed
  group[client].push(array[i]);
}
console.log(group);
重要的是要记住,结果对象将包含对原始数组中对象的引用。例如:
array[0].id = 100;
group.Microsoft[0].id; // 100

相关内容

  • 没有找到相关文章

最新更新