繁体   English   中英

JavaScript将数组项推入命名索引

[英]Javascript push array item to named index

我有一个JSON数组:

[{id:1,客户端:“ Microsoft”},{id:2,客户端:“ Microsoft”},{id:3,客户端:“ 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”:[{...}],“ Apple”:[{...}]}]

甚至

[{客户:“ Microsoft”,“项目”:[{...}]},{客户:“苹果”,项目:[{...}]}]

为此,您需要一个对象,而不是一个数组:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM