如何将for循环转换为AngularJs forEach?

时间:2016-03-09 18:50:42

标签: javascript angularjs

我是JavaScript新手只想澄清一下因为我正在使用AngularJs客户端。下面的代码按预期工作但问题是,有没有办法用Angular循环forEach实现以下结果? / p>

ctrl.js

for (var i = 0; i < selectedOwners.length; i++) {
    if (selectedOwners[i].workerKey === obj.workerKey) {
        selectedOwners.splice(i, 1);
        break;
    }
}

3 个答案:

答案 0 :(得分:1)

这应该有效:

php > $arr = array(array('c', 'b', 'a'), array('r', 'q','p'));
php > var_dump($arr);
array(2) {
  [0]=>
  array(3) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "a"
  }
  [1]=>
  array(3) {
    [0]=>
    string(1) "r"
    [1]=>
    string(1) "q"
    [2]=>
    string(1) "p"
  }
}
php > sort($arr[1]);
php > var_dump($arr);
array(2) {
  [0]=>
  array(3) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "a"
  }
  [1]=>
  array(3) {
    [0]=>
    string(1) "p"
    [1]=>
    string(1) "q"
    [2]=>
    string(1) "r"
  }
}

答案 1 :(得分:0)

过滤数组的最简单方法是使用本机javascript .filter()函数。

var filteredOwners = selectedOwners.filter(function(owner) { 
    return owner.workerKey !== obj.workerKey; 
});

答案 2 :(得分:0)

您可以在不使用angular.forEach

的情况下执行此类操作
var workerIndex = selectedOwners.map(function(owner) { return owner.workerKey; })
      .indexOf(obj.workerKey);

selectedOwners.splice(workerIndex, 1);