javascript - 如何循环 angular js 对象,并将对象添加到循环中

标签 javascript arrays angularjs for-loop

我试图在 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"}]) 的东西:

  1. 不改变值。尝试在控制台中执行以下代码:

     var x = "a";
     x.concat("b");
     console.log(x);
    
  2. 听起来不对。尝试在控制台中执行以下命令:

     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/

相关文章:

css - 两个输入文件同时设置为禁用

javascript - 如何获取数组中所有json键

Angularjs 小数分隔符逗号

javascript - 使用 CSS 或 Javascript 将页脚固定到浏览器的底部 10%?

javascript - 创建一个通用函数以将其用于其他数据

c - 如何比较字符数组和字符串

sql - 在 PostgreSQL 中按数组元素分组

javascript - Backbone - 在 ItemView 之外访问 View 的 $el.attr

javascript - Array.from 不适用于 jasmine

javascript - JS-洛达什;嵌套对象(父/子)到平面数组