Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中替换集合中所有对象的属性_Javascript_Arrays_Underscore.js - Fatal编程技术网

如何在javascript中替换集合中所有对象的属性

如何在javascript中替换集合中所有对象的属性,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,假设我有收藏 [ {"name" : "full-name", "value" : "W. Chandry"}, {"name" : "email", "value" : "wchandry@example.org"}, {"name" : "blog", "value" : "http://example.org/blogs/wchandry"}, {"name" : "avatar", "value" : "http://example.org

假设我有收藏

[
      {"name" : "full-name", "value" : "W. Chandry"},
      {"name" : "email", "value" : "wchandry@example.org"},
      {"name" : "blog", "value" : "http://example.org/blogs/wchandry"},
      {"name" : "avatar", "value" : "http://example.org/images/wchandry"}
]
我想将所有“value”属性的值更改为“TBD”,使其成为

[
      {"name" : "full-name", "value" : "TBD"},
      {"name" : "email", "value" : "TBD"},
      {"name" : "blog", "value" : "TBD"},
      {"name" : "avatar", "value" : "TBD"}
]

在下划线.js或javascript中实现这一点的最佳方法是什么?您可以使用lodash.js来实现这一点

_.merge(arr,{prop:'Val'});
_.assign(arr,{prop:'Val})

你真的不需要下划线。您可以简单地在数组上循环,只需更改每个对象的属性

collection.forEach(function(item) {
  item.value = 'TBD';
});
运行示例:

var集合=[{
“姓名”:“全名”,
“价值”:“W.钱德里”
}, {
“名称”:“电子邮件”,
“值”:wchandry@example.org"
}, {
“名称”:“博客”,
“值”:http://example.org/blogs/wchandry"
}, {
“名称”:“化身”,
“值”:http://example.org/images/wchandry"
}];
collection.forEach(函数(项){
item.value=‘待定’;
});
collection.forEach(函数(项){
控制台日志(项目);

});下划线中也应该有类似的东西,除了vanilla JS之外,任何简单地循环一个对象数组并为每个对象更改一个值的方法都是非常过分的。只需迭代对象并更新每个对象的属性?我认为为此,您需要在模板中添加
ng repeat
。OP刚刚询问如何更新数组中所有对象的某些属性。。。没有指定任何与角度相关的内容。注意
forEach
已经是有意的泛型,不需要在数组上调用它。对于类似数组的对象,您可以借用它,如编辑之前的
[].forEach.call(arrayLike,func)
@nem,因为在这种情况下,它是一个真实数组,
forEach
可以直接使用。我只是想添加一个注释,而不是做一个更正。@Oriol是的,我现在明白了,我在处理我读到的东西之前采取了行动哈哈。我想我现在涵盖了所有的案子。