我是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;
}
}
答案 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);