javascript - 如何在 Angular 中选择对象列表的不同属性值

标签 javascript angular

<分区>

我有以下对象列表:

var data = [
    {
        "AcctId": 100,
        "Value": true
    },
    {
        "AcctId": 200,
        "Value": false
    }
]

我想像这样选择不同的 AcctId:

Output: [100, 200]

我试过使用 Angular 过滤法:

var newData = data.filter(r => r.AcctId);

但是,它会返回与输入相同的列表。谁能指导我做错了什么?

最佳答案

像这样尝试:

Working Demo

this.result = Array.from(new Set(this.data.map(x => x.acctId)));

或者,

 constructor() {
    this.result = this.GetDistinctValues(this.data, "acctId").map(x => x.acctId);
  }

  GetDistinctValues(Source: Array<any>, FilterKey: string = null): Array<any> {
    let DistinctArray = [];
    try {
      Source.forEach(e => {
        if (FilterKey !== null && FilterKey !== undefined && FilterKey !== "") {
          if (
            DistinctArray.filter(DE => DE[FilterKey] === e[FilterKey]).length <=
            0
          )
            DistinctArray.push(e);
        } else {
          if (DistinctArray.indexOf(e) === -1) DistinctArray.push(e);
        }
      });
    } catch (error) {
      DistinctArray = [];
    }
    return DistinctArray;
  }

Demo 2

关于javascript - 如何在 Angular 中选择对象列表的不同属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58638944/

相关文章:

javascript - 至少包含 1 个数字和 1 个字符且固定长度为 11 的字母数字字符串的正则表达式

javascript - 在 IONIC2 中获取动态创建的 ionic 输入值

Angular 2 : Do something with @Input inside Component

javascript - jQuery $.post 导致浏览器堆栈溢出

javascript - 在 js 中使用 ajax 的联系表单不会 POST

javascript - 正则表达式消除一个单词

javascript - 当您的应用程序使用客户端和服务器端 mvc 框架时,如何处理路由?

angular - ion-checkbox "checked"属性不起作用

angular - Ionic4:在Web应用程序中播放音频文件时出现问题

angular - 使用带 Angular Three.js STL 加载器