组织数组项

时间:2017-06-12 13:10:35

标签: javascript

我有以下JavaScript数组:

var allItems = ['BBL_NO1', 'BBL_NO2', 'BBL_N03',  'BBL_NO4', 'AAL_NO1', 'AAL_NO2', 'MML_NO1', 'MML_NO2'];

现在我想以这种格式对数组进行排序,将值放在下拉列表中:

var sorted = { 'BBL': ['BBL_NO1', 'BBL_NO2', 'BBL_N03',  'BBL_NO4'],
               'AAL': ['AAL_NO1', 'AAL_NO2'],
               'MML': ['MML_NO1', 'MML_NO2']};

有谁知道我该怎么做?

1 个答案:

答案 0 :(得分:4)

您可以使用Array.prototype.reduce()功能执行此操作。

示例:

var allItems = ['BBL_NO1', 'BBL_NO2', 'BBL_N03',  'BBL_NO4', 'AAL_NO1', 'AAL_NO2', 'MML_NO1', 'MML_NO2'];

var sorted = allItems.reduce(function (acc, item) {
      var mainPart = item.split('_')[0];
      if (!acc.hasOwnProperty(mainPart)) {
          acc[mainPart] = [];     
      }
      acc[mainPart].push(item);
      return acc;
      
    
}, {});

console.log(sorted);