js 数组分组?

var list = ['1-10','1-20','1-22','2-2','2-3','2-4','3-1','3-5','4-6','5-10'];
/*
如何将上面数组分成5组?
如:1-* 为第一组;
   2-* 为第二组;
   ....
以此类推,求解
*/
阅读 3.2k
评论 更新于 2017-03-22
    4 个回答
    Dont
    • 6.7k

    题意里分组的共同点在于元素的第一个字符(应该说是连线符前的字符串)相同,所以可以用一个对象(其实就是类似字典的含义),把对应数据组合在一起放到同一个地方去。

    var obj = {};
    var list = ['1-10','1-20','1-22','2-2','2-3','2-4','3-1','3-5','4-6','5-10'];
    list.forEach(function(e){
      var index = e.split('-')[0];
      if(!obj[index]){
        obj[index] = [];
      }
      obj[index].push(e);
    
    })
    评论 赞赏 2017-03-22