Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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_Reactjs - Fatal编程技术网

将字典数组转换为javascript中的单个字典数组

将字典数组转换为javascript中的单个字典数组,javascript,reactjs,Javascript,Reactjs,我有一个javascript数组 arr = [{"class":"a"},{"sub_class":"b"},{"category":"c"},{"sub_category":"d"}] 我想要一个新数组,如下所示: new_arr = [{"class":"a", "sub_clas

我有一个javascript数组

arr = [{"class":"a"},{"sub_class":"b"},{"category":"c"},{"sub_category":"d"}]
我想要一个新数组,如下所示:

new_arr = [{"class":"a", "sub_class":"b", "category":"c", "sub_category":"d"}]
是否可以在Javascript中执行此操作而不使用for循环来迭代arr?

您可以使用Object.assign:

常量数组=[{ 班级:a }, { 次级:b }, { 类别:c }, { 亚类:d }] const mergedObject=Object.assign{},…数组; //如果这是故意的,就放进一个数组 const newArray=[mergedObject];
console.lognewArray 我认为您希望合并对象。可以使用扩展运算符或Object.assign。我看不出在数组中有一个对象的意义。考虑到您的需求,您可以:

const merged = arr.reduce((list, curr) => {
   return Object.assign({}, list, curr);
}, {});

const newArr = [merged];
你可以试试这个

var arr = [{"class":"a"},{"sub_class":"b"},{"category":"c"},{"sub_category":"d"}];
var res=[];
var res1=[];
res=Object.assign(...arr);
res1.push(res);

console.log("Result: ",res1);

如果只有一个元素,为什么它仍然是一个数组?因为我以后可能需要将新字典推送到数组中。请注意,这会使arr中的第一个对象发生变异,您可能会关心,也可能不关心。将{}作为第一个元素传递将确保您正在创建一个新对象,并且正在分配给该对象。