Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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_Object - Fatal编程技术网

向数组中的所有对象添加属性的javascript

向数组中的所有对象添加属性的javascript,javascript,arrays,object,Javascript,Arrays,Object,我有一个由外部API提供的对象数组,例如 [{prop:val1},{prop:val2},{prop:val3}….] 我必须将此对象(我的代码)提供给第三方库,该库希望对象上的属性名称为“xyz”而不是“prop” 最有效的方法(内存方面和速度方面)是什么,基本上避免了这两种情况: 1.在数组上迭代 2.将“xyz”属性添加到数组中的所有对象 要做到这一点 我的思路是为所有返回“prop”值的对象添加一个xyz的getter,但这不会保存循环。 此时,在原型级别(Object.propert

我有一个由外部API提供的对象数组,例如 [{prop:val1},{prop:val2},{prop:val3}….]

我必须将此对象(我的代码)提供给第三方库,该库希望对象上的属性名称为“xyz”而不是“prop”

最有效的方法(内存方面和速度方面)是什么,基本上避免了这两种情况: 1.在数组上迭代 2.将“xyz”属性添加到数组中的所有对象

要做到这一点

我的思路是为所有返回“prop”值的对象添加一个xyz的getter,但这不会保存循环。 此时,在原型级别(Object.property)添加geting似乎不是一个好主意


编辑:我不是在寻找不同的方法来循环javascript中的数组,比如forEach或map。我有一个非常具体的问题,我感兴趣的是探索是否有可能简单地为“xyz”创建一个属性代理。

数组映射用于循环遍历数组

myArray.map(function(obj){
    obj.xyz = 'yourvalue';
    return obj;
}
您可以使用从API接收的阵列创建新阵列

var newArray = oldArray.map(function(obj){
    return {newKey : obj.prop};
});

在本例中,
newKey
将是您想要的键属性,而不是
'prop'
,并且它被分配了旧的
'prop'

可能与@LucaDeNardi重复的所有解决方案都在数组中循环并添加属性。这正是我想要避免的,这是唯一的方法。数组是多个项的列表这一事实要求您遍历所有项如果您想避免循环,可以尝试类似于
JSON.parse(JSON.stringify([{prop:'x'},{prop:'y'},{prop:'z'}])的方法Array.prototype.map()
用于转换数组的每个元素,并在新创建的数组中返回这些转换后的值。