javascript - 根据动态传递的属性从对象数组中获取唯一值

标签 javascript typescript ecmascript-6

在这种情况下,我需要根据动态传递的属性获取所有对象的唯一值。我尝试了以下方法,但似乎不起作用。

var arr = [
  {
    id: "1",
    type: "x",
    source: {
      val1: "3",
      val2: "4",
      val3: "6",
    },
  },
  {
    id: "1",
    type: "x",
    source: {
      val1: "3",
      val2: "4",
      val3: "6",
    },
  },
  {
    id: "1",
    type: "x",
    source: {
      val1: "4",
      val2: "5",
      val3: "6",
    }
  }
];

现在假设我通过了 val1,它应该给我唯一值 3,4,如果我通过了 val2,它应该给我 4,5。 P.S:我只会传递源属性中存在的参数。

我尝试过的方法:

 calculate = (param) =>
 {
   let uniqueValues = Array.from(
        new Set(arr.map((arr: any) => arr[param]))
   );
 }

最佳答案

看起来,您还需要 source 属性。

new Set(arr.map((o: any) => o.source[param]))

关于javascript - 根据动态传递的属性从对象数组中获取唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56887792/

相关文章:

Javascript:如何计算 DOM 元素内文本元素的行数,例如 <li>

javascript - 单张分隔的div元素交互

angular - 动态添加组件 Angular 5

javascript - 检查 Facebook 应用程序的权限

javascript - 在 Angular2 中使用动态组件时出现错误 "ERROR TypeError: Cannot read property ' createComponent' of undefined"

javascript - jsonschema-master 验证 json 请求未按预期响应

javascript - 获取元素源焦点 Angular

javascript - 来自同一 require(js 文件)的多个导出类

javascript - 重写较短版本的函数

javascript - 将全局导入模块模式转换为 ES6 模块