Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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_Ecmascript 6_Spread Syntax - Fatal编程技术网

Javascript 向对象数组中的所有对象插入新的键值对,而不循环

Javascript 向对象数组中的所有对象插入新的键值对,而不循环,javascript,arrays,ecmascript-6,spread-syntax,Javascript,Arrays,Ecmascript 6,Spread Syntax,我有一个包含类似结构对象的对象数组。我需要向数组中的所有对象添加一个新的键值对。如何在不循环整个数组的情况下执行 提供我需要的输出示例 let arr = [{a:1,b:2}, {a:2,b:3}]; let key = c; let value = 3; 所需输出如下: //arr2 = [ {a:1,b:2,c:3}, {a:2,b:3,c:3}] 附言:尝试使用扩展运算符,但很少或没有成功 如何在不循环整个阵列的情况下执行此操作 你不能(合理地)。完全不合理的方法是将其添加到所有对象

我有一个包含类似结构对象的对象数组。我需要向数组中的所有对象添加一个新的键值对。如何在不循环整个数组的情况下执行

提供我需要的输出示例

let arr = [{a:1,b:2}, {a:2,b:3}];
let key = c;
let value = 3;
所需输出如下:

//arr2 = [ {a:1,b:2,c:3}, {a:2,b:3,c:3}]
附言:尝试使用扩展运算符,但很少或没有成功

如何在不循环整个阵列的情况下执行此操作

你不能(合理地)。完全不合理的方法是将其添加到所有对象继承的
Object.prototype
,从而将其添加到数组中的所有对象以及其他任何地方

但同样:你不能合理地,你需要循环(以一种或另一种形式)。这个循环可能是递归函数编程,但它基本上仍然是一个循环

以下是递归的技术上不循环的方法:

让arr=[{a:1,b:2},{a:2,b:3}];
设el={c:3};
(功能go(a,i,e){
如果(i
。作为控制台包装器{
最大高度:100%!重要;
}
您可以对数组和对象使用map()运算符。赋值()来追加键、值对
让arr=[{a:1,b:2},{a:2,b:3}];
设finalArray=arr.map(函数(obj){return Object.assign(obj,{c:3});})
控制台日志(finalArray)

如何在不循环整个阵列的情况下执行此操作。为什么需要无循环?
arr[0].c=el.c;arr[1].c…
@Teemu你仍然会循环所有索引,对吗?@Yash-Nope,我将它们硬编码到我的文件=)。@DanPhilip你能解释一下这个“无循环”的事情吗?为什么要在没有合适工具的情况下进行操作?能否更具体地向对象原型添加键值。@DanPhilip您可以只执行
object.prototype.c=3
,但这根本不是一个好主意,但您可以从对象继承,然后添加到继承的原型。但是你的数组结构看起来就不一样了。@DanPhilip:你真的,真的,真的不想这么做。但如果你这么做了,你就不会想基思那样做了。相反:
Object.defineProperty(Object.prototype,“c”{value:el.c})(因此它是不可枚举的)。但你真的,真的,真的不想这么做。:-)@PraveenKumarD但是
.map()
将在数组上循环。OP想要一个没有循环的解决方案。