【问题标题】:How to get distinct properties value from array? [duplicate]如何从数组中获取不同的属性值? [复制]
【发布时间】:2017-12-10 13:56:28
【问题描述】:

我有这个数组吗?

var arr = [{id:"1",Name:"Tom"},
           {id:"2",Name:"Jon"},
           {id:"3",Name:"Tom"},
           {id:"4",Name:"Jack"}]

从上面的数组中,我需要区分所有现有的名称。

var result = getNamesDistinct(arr);

result 应该包含结果是:

 ["Tom","Jon","Jack"]; 

我的问题是如何从 arr distinct 中获取所有现有名称?

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    如果Set 可用,您可以这样做

    new Set(arr.map(obj => obj.Name))
    

    (如果需要数组,请将集合传递给Array.from

    【讨论】:

      【解决方案2】:

      你可以通过 Set 对象来实现

      const arr = [
         { id: "1", Name: "Tom" },
         { id: "2", Name: "Jon" },
         { id: "3", Name: "Tom" },
         { id: "4", Name: "Jack" }
      ];
      
      const uniqueNames = [...new Set(arr.map(item => item.Name))];
      
      console.log(uniqueNames);

      或者您可以遍历数组并添加条件以仅获取唯一名称。

      const arr = [
         { id: "1", Name: "Tom" },
         { id: "2", Name: "Jon" },
         { id: "3", Name: "Tom" },
         { id: "4", Name: "Jack" }
      ];
      
      const uniqueNames = arr.reduce(function(arr, item) {
      
         if(arr.indexOf(item.Name) === -1) {
            arr.push(item.Name);
         }
      
         return arr;
      
      }, []);
      
      console.log(uniqueNames);

      【讨论】:

      • 箭头出现语法错误。
      • Suren 感谢您的帖子。您能提供示例吗?
      • @Michael 我已经更新了代码
      【解决方案3】:

      你可以试试这个

      var array = [{
              id: "1",
              Name: "Tom"
          }, {
              id: "2",
              Name: "Jon"
          }, {
              id: "3",
              Name: "Tom"
          }, {
              id: "4",
              Name: "Jack"
          }]
      
          function uniqueNames(array) {
              var newArray = [];
              array.forEach((value, key) => {
                  newArray.push(value.Name)
              });
              return newArray
          }
         var myNewArray =  uniqueNames(array)
      

      【讨论】:

        猜你喜欢
        • 2012-02-07
        • 2019-03-15
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 2016-09-12
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多