Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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,我有一个这样的物体: const object = { a0: 1, a1: 10, b0: 2, c0: 3, b1: 20, c1: 30, }; 我们可以假设新数组的长度将基于这些对象键的最高位。在这种情况下,长度是2。我希望能够循环遍历此对象,然后将其作为一个组按以下形式推送到数组中: mappedObject = [{a:1, b:2, c:3},{a:10,b:20,c:30}] 所以基本上所有的a0,b0和c0都被分组在一起,a1,a2和a3都是一样的。注意:成功分组后,我希

我有一个这样的物体:

const object = { a0: 1, a1: 10, b0: 2, c0: 3,  b1: 20, c1: 30, };
我们可以假设新数组的长度将基于这些对象键的最高位。在这种情况下,长度是2。我希望能够循环遍历此对象,然后将其作为一个组按以下形式推送到数组中:

mappedObject = [{a:1, b:2, c:3},{a:10,b:20,c:30}]

所以基本上所有的a0,b0和c0都被分组在一起,a1,a2和a3都是一样的。注意:成功分组后,我希望能够删除该数字。

我想得太多了。我所要做的就是找到一种方法来知道潜在数组的长度,然后简单地循环到该长度,然后访问如下所示的对象。为了在我的react应用程序中知道数组的长度,我必须传递一个道具长度

const mappedObj=[];
for(let i=0;i<2; i++){
 mappedObj.push({a: object[`a${i}`], b: object[`b${i}`], c: object[`c${i}`]});
}

console.log(mappedObj);
const mappedObj=[];

对于(设i=0;i),您可以分离键并将值分配给正确的索引

const
object={a0:1,a1:10,b0:2,c0:3,b1:20,c1:30},
结果=对象
.条目(对象)
.减少((r[k,v])=>{
常量[,键,索引]=k.match(/(\D+)(\D+/);
如果(!r[index])r[index]={};
r[索引][键]=v;
返回r;
}, []);
console.log(结果);

.as console wrapper{max height:100%!important;top:0;}
我不会假设键中没有其他不是最后几个数字的数字:

const object={a0:1,a1:10,b0:2,c0:3,b1:20,c1:30,};
设arr=[];
Object.entries(对象)
.map([k,v])=>k.split(/(\d+)$/).slice(0,2.concat(v))
.forEach(([k,i,v])=>arr[i]=Object.assign({},arr[i],{[k]:v}));

console.log(arr);
我们有什么先决条件吗?就像所有的键都是
*char**number*
?如果没有,你能发布一个真正可能的输入吗?还有,你试过什么吗?你的意思是
mappedObject=[{a:1,b:2,c:3},{a:10,b:20,c:30}]
而不是
mappedObject=[{a:1,b:1},{a:10,b:10,c:10}]
?@iAmOren是的!对于如此危险的输入错误,我深表歉意。如果我们不知道潜在数组的长度,这真是一个很好的解决方案!