首页 > 从内容中的jsons如何能得到result ?

从内容中的jsons如何能得到result ?

    var jsons = [
        {"a":1,"b":2,"e":3,"d":4,"p":'河北',"c":'石家庄'},
        {"a":1,"b":2,"e":3,"d":4,"p":'河北',"c":'保定'},
        {"a":1,"b":2,"e":3,"d":4,"p":'河北',"c":'其他'},
        {"a":2,"b":3,"e":4,"d":5,"p":'广东',"c":'广州'},
        {"a":2,"b":3,"e":4,"d":5,"p":'广东',"c":'深圳'},
        {"a":3,"b":4,"e":5,"d":6,"p":'澳门',"c":'澳门'}
    ];
    var result = [
      [
          {"a":1,"b":2,"e":3,"d":4,"p":'河北',"c":'石家庄'},
          {"a":1,"b":2,"e":3,"d":4,"p":'河北',"c":'保定'},
          {"a":1,"b":2,"e":3,"d":4,"p":'河北',"c":'其他'}
      ],
      [
          {"a":2,"b":3,"e":4,"d":5,"p":'广东',"c":'广州'},
          {"a":2,"b":3,"e":4,"d":5,"p":'广东',"c":'深圳'}
      ],
      [
          {"a":3,"b":4,"e":5,"d":6,"p":'澳门',"c":'澳门'}
      ]
    ];

这个方法有很多吧。

如果是支持es5的环境下,

Array.prototype.filterArray.prototype.reduce都能帮你实根据属性特定值筛选对象。


试试下面的代码:

var cities = {}
var result = [];

for (var i = 0; i < jsons.length; i++) {
  var item = jsons[i];

  if (!cities[item.p]) {
    cities[item.p] = [];
    result.push(cities[item.p]);
  }
  cities[item.p].push(item);
}
console.log(result);
【热门文章】
【热门文章】