$scope.lastentries = []
e = {'min': $scope.minFoc, 'max': $scope.maxFoc, 'pas': $scope.pas}
$scope.lastentries.push(e)
我想查找e是否已存储在数组中: 不幸的是,$ scope.lastentries中的e不起作用。 它似乎并没有关注所有领域,可能比较了一些“参考”。
当然,我可以在数组中循环并按字段比较所有结构。 但是有更简单的方法吗?类似的东西,但会比较所有的领域。
到目前为止,我正在做:
v = $scope.lastentries.filter (x) -> x.min == e.min and x.max == e.max and x.pas == e.pas
$scope.lastentries.push(e) if v.length == 0
如果某人有更“紧凑”/更好的做法,请分享。 谢谢!
答案 0 :(得分:0)
我相信下划线的_.indexOf可以实现您的目标:
_.indexOf($scope.lastentries, e)
如果包含在数组中,将返回e的索引位置,否则返回-1
答案 1 :(得分:0)
最简单的方法是使用Underscore.js(这是非常轻量级的,所以应该没有问题,包括它)。
使用它,您可以使用它findWhere
函数进行检查:
v = _.findWhere $scope.lastentries, e
$scope.lastentries.push(e) unless v?
如果未找到匹配项,或者列表为空,则v
等于undefined
。