【问题标题】:Javascript unique array itemsJavascript 唯一数组项
【发布时间】:2011-11-07 03:48:46
【问题描述】:

我有一个这样的数组:

var data = [
            { Group: 'A', Name: 'SD' },
            { Group: 'B', Name: 'FI' },
            { Group: 'A', Name: 'MM' },            
            { Group: 'B', Name: 'CO' }
           ];

我只想获取数组中唯一的 Group 值,例如:

var unique = ['A','B'];

我查看了一些关于 SO 的示例,但我不明白。谁能告诉我该怎么做?

【问题讨论】:

    标签: javascript arrays unique


    【解决方案1】:
    var data = [
                 { Group: 'A', Name: 'SD' },
                 { Group: 'B', Name: 'FI' },
                 { Group: 'A', Name: 'MM' },            
                 { Group: 'B', Name: 'CO' }
               ];
    
    var set = {};
    for (var i = 0; i < data.length; i++)
        set[data[i].Group] = 1;
    
    var arr = [];
    for(var key in set)
        arr.push(key);
    
    alert(arr);
    

    【讨论】:

    • arr = Object.keys(set)替换那个循环
    • 仅供参考,Object.keys 是 ECMAScript 5 中的新功能,因此它可能无法在所有浏览器中使用 (reference)
    • @PetarIvanov 这在 IE9 中效果很好。根据 Cheran 的 FYI,这在 IE
    • @user686924:我恢复到原来的解决方案,它不使用Object.keys
    【解决方案2】:

    如果你使用的是 ES6/ES2015 或更高版本,你可以这样做:

    var unique = [...new Set(data.map(item => item.Group))];
    

    Here 是一个示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 2020-02-10
      • 1970-01-01
      相关资源
      最近更新 更多