【问题标题】:Finding the number of unique objects in an array in Angular 7在Angular 7中查找数组中唯一对象的数量
【发布时间】:2019-01-22 20:35:41
【问题描述】:

假设我有一个包含以下对象的以下数组:

array = [{name: 'foo', number: 1}, {name: 'foo', number: 1}, {name: 'bar', number: 1}]

我将如何在此数组中查找 foo 的数量?我现在在做

search(name, array) {
    let count = 0;
    for (let i = 0; i < array.length; i++) {
      if (array[i].name=== name) {
        count++;
      }
    }
    return count;
  }

我希望能够运行search() 函数并能够获取名称为foo 的对象的数量和名称为bar 的对象的数量,而不必传入名称对象本身。

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    let array = [{
      name: 'foo',
      number: 1
    }, {
      name: 'foo',
      number: 2
    }, {
      name: 'bar',
      number: 1
    }]
    
    function count(input) {
      var output = {};
    
      array.forEach(item => {
        if (output[item.name]) {
          output[item.name] += item.number;
        } else {
          output[item.name] = item.number;
        }
      });
    
      return output;
    }
    
    var result = count(array);
    console.log(result);

    您可以遍历项目并为每个相同的名称添加计数。希望这是您要找的,否则请告诉我

    【讨论】:

    • 是的,这正是我想要的!谢谢!
    【解决方案2】:

    使用filter 函数

    let array = [{name: 'foo', number: 1}, {name: 'foo', number: 1}, {name: 'bar', number: 1}]
    
    let count = array.filter(e => e.name === "foo").length;
    console.log(count)

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 2015-12-08
      相关资源
      最近更新 更多