【问题标题】:Javascript push array item to named indexJavascript将数组项推送到命名索引
【发布时间】:2013-05-19 08:18:34
【问题描述】:

我有一个 JSON 数组:

[{ id:1,客户端:“微软”},{ id:2,客户端:“微软” },{ 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] );

}

我将如何将上述数组分组为这样的:

[{ "微软": [{...}], "苹果":[{...}] }]

甚至

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

【问题讨论】:

    标签: javascript arrays loops indexing multidimensional-array


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2023-01-20
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多