Javascript将数组项推送到命名索引
我有一个JSON数组: [{id:1,客户端:“Microsoft”},{id:2,客户端:“Microsoft” },{id:3,客户机:“苹果”}] 我想按“客户机”对它进行分组,但在javascript中我遇到了困难。在PHP中,我通常会这样做:Javascript将数组项推送到命名索引,javascript,arrays,loops,indexing,multidimensional-array,Javascript,Arrays,Loops,Indexing,Multidimensional Array,我有一个JSON数组: [{id:1,客户端:“Microsoft”},{id:2,客户端:“Microsoft” },{id:3,客户机:“苹果”}] 我想按“客户机”对它进行分组,但在javascript中我遇到了困难。在PHP中,我通常会这样做: $group = array(); foreach ($array as $item) { $group[ $item['client'] ] = $item; } return $group; 但是这种方法在多维数组的java
$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] );
}
我如何将上述数组分组为以下内容:
$group = array();
foreach ($array as $item) {
$group[ $item['client'] ] = $item;
}
return $group;
[{“微软”:[{…}],“苹果”:[{…}]}]
甚至
[{客户端:“微软”,“项目”:[{…}]},{客户端:“苹果”,项目:[{…}]}]
您需要一个对象,而不是数组:
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);
您需要一个对象,而不是数组:
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);