我试图在 angular-js 中遍历一个对象并为对象添加一个数组 foreach 循环对象,我的代码如下但似乎不起作用
vm.patients= [
{[ {"p1": "value1"} ]},
{[ {"p1": "value1"} ]},
{[ {"p1": "value1"} ]}
}];
for(var i=0; i < vm.patients.length; i++){
vm.patients[i].concat([{"z1": "z2",}]);`
}
我的目标是将 {"z1": "z2",}
添加到每个循环,即 3 个循环数组,以便我以下面结尾
vm.patients= [
{[ {"p1": "value1"},{"z1": "z2",} ]},
{[ {"p1": "value1"},{"z1": "z2",} ]},
{[ {"p1": "value1"},{"z1": "z2",} ]}
}];
concat
但是似乎不起作用,有什么解决办法吗?
最佳答案
如果对象不是类似数组的对象,则不要使用 for(;;)
循环迭代对象。
您可以使用 for(in)
进行迭代,但是:
for(var key in yourObj) {
if (obj.hasOwnProperty(key)) {
var value = yourObj[key];
//your code here
}
}
或者 angularjs-fashion:
angular.forEach(yourObj, function(value, key) {
// your code here
})
另外:
vm.patients[i].concat([{"z1": "z2",}]);
是错误的,因为您正在调用类似 "patient1".concat([{"z1": "z2"}]) 的东西:
不改变值。尝试在控制台中执行以下代码:
var x = "a"; x.concat("b"); console.log(x);
听起来不对。尝试在控制台中执行以下命令:
var x = "a"; console.log(x.concat([{'a':'b'}]))
看看会发生什么。
提示:如果您的代码有问题,请尝试将所有代码分离成单个指令和赋值。
也许你打算:
var yourObj = {
"p1": {"name": "patient1"},
... others ...
};
angular.forEach(yourObj, function(value, key) {
// your code here
angular.extend(value, {"z1": "z2"})
})
关于javascript - 如何循环 angular js 对象,并将对象添加到循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226338/