当前位置: 首页 > 面试题库 >

获取数组中具有某些属性的项目数

翟缪文
2023-03-14
问题内容

我有如下对象的数组。

$scope.students = [{'isSelected': true},
    {'isSelected': true},
    {'isSelected': false},
    {'isSelected': true},
    {'isSelected': true},
]

如何获得isSelected属性设置为的计数项目true

更新:

问题是$scope.students从REST api获取的,只是循环$
scope.students变量不起作用,因为undefined直到请求完成,该变量才起作用,因此循环代码错误地指出$scope.students is not defined

我尝试使用,$watch但是在那种情况下,我必须在watch指令下定义循环,并且仅在定义$
scope.students时才工作一次,此后循环就无法正常工作,因为$ scope.students本身没有改变。


问题答案:

您可以将以下方法添加到控制器中。selectedStudentsCount您范围内的变量将保留所有 选定学生的
数量(其中isSelected设置为true)。

功能计数 选定的用户angular.forEach只有将被执行students不为空。否则将返回 students变量。
selectedStudentsCount``0

$scope.selectedStudentsCount = function() {
    var count = 0;
    angular.forEach($scope.students, function(student){
        count += student.isSelected ? 1 : 0;
    });
    return count; 
}

请注意,这selectedStudentsCount是一个函数,因此必须()在模板中使用来调用,例如

<h2>Total selected students: {{selectedStudentsCount()}}</h2>


 类似资料:
  • 我有一个这样的数组: 获得只有值的数组的最简洁的ES6方法是什么? 预期结果将是:

  • 有一个名为的类。 并且我有一个对象的数组。我现在需要的是将该数组中所有对象的s提取到一个新数组中。 我也发现了这个类似的问题。但是它是在Objective-C中的,所以它使用来实现这一点。 我怎么能在斯威夫特做到这一点呢?

  • 如果我有一个物体 并创建这些对象的数组 有没有一种方法可以让我只检索数组中所有对象的一个属性?例如: 上面的示例没有将set keyArray返回给任何东西,但我希望它可以设置成如下所示: 有没有人知道这样做的方法,而不需要遍历objArray并手动将每个键属性复制到键数组?

  • 问题内容: 如何编写一个在ES6中仅以最紧凑的方式仅包含很少的属性的函数? 我想出了使用解构+简化对象文字的解决方案,但是我不喜欢代码中重复的字段列表。 有没有更苗条的解决方案? 问题答案: 尽管不能避免重复字段列表,但这里有些苗条。它使用“参数解构”来避免需要该参数。 @EthanBrown的解决方案更为通用。这是它的更惯用的版本,它使用和计算的属性(部分): 如果我们要保留属性的属性(例如和和

  • 我正在做一个程序,它将计算一些东西,例如,我需要知道有多少员工是女性,它是在一个文件,我读取并保存在一个字符串数组。保存在数组中的数据为F为女性,M为男性。我怎么统计数组里面有多少个F(女)?我已经设置好了所有的东西,我需要知道的是如何计算数组中的值,数组中的特定值(只是F),而不是所有的值。 这是读取性别的代码(在示例中使用): 这是用来存储它们的变量: Gender.txt文件是这样的:

  • 如何做到这一点,以这种简单的方式?