Javascript 如何将平行列表中的对象转换为对象列表?
我有一个像这样的物体Javascript 如何将平行列表中的对象转换为对象列表?,javascript,arrays,object,Javascript,Arrays,Object,我有一个像这样的物体 var data = [ { "Name": ["Jane", "Peter", "Jenny"], "Id": [1, 2, 3], "Years": [16, 17, 18] } ]; 但是我想把它放到一个react表中,它需要另一种类似的格式 var data1 = [ { "Name": "Jane", "Id": 1, "Years": 16, }, {
var data = [
{
"Name": ["Jane", "Peter", "Jenny"],
"Id": [1, 2, 3],
"Years": [16, 17, 18]
}
];
但是我想把它放到一个react表中,它需要另一种类似的格式
var data1 = [
{
"Name": "Jane",
"Id": 1,
"Years": 16,
},
{
"Name": "Peter",
"Id": 2,
"Years": 17,
},
{
"Name": "Jenny",
"Id": 3,
"Years": 18,
}
]
如何使用JSX转换它?我会找出最大属性长度(如果它们不完全相同),创建一个大小相同的数组,在for循环中迭代,使用数据键和匹配的索引位置创建对象(
null
如果不匹配),然后将它们推送到数组中
const数据=[{
“姓名”:[“简”、“彼得”、“珍妮”],
“Id”:[1,2,3],
“年份”:[16、17、18]
}]
const interestingData=数据[0]
const keys=Object.keys(兴趣数据)
const maxItems=keys.reduce((count,key)=>Math.max(count,interestingData[key].length),0)
const transformed=新数组(maxItems)
对于(变量i=0;iObject.assign(obj{
[key]:interestingData[key][i]| | null//如果没有匹配索引,则为默认值
}),Object.create(空))
}
console.info(transformed)
我会找出最大属性长度(如果它们不完全相同),创建一个大小相同的数组,在for循环中迭代,使用数据键和匹配的索引位置创建对象(null
如果不匹配),然后将它们推到数组中
const数据=[{
“姓名”:[“简”、“彼得”、“珍妮”],
“Id”:[1,2,3],
“年份”:[16、17、18]
}]
const interestingData=数据[0]
const keys=Object.keys(兴趣数据)
const maxItems=keys.reduce((count,key)=>Math.max(count,interestingData[key].length),0)
const transformed=新数组(maxItems)
对于(变量i=0;iObject.assign(obj{
[key]:interestingData[key][i]| | null//如果没有匹配索引,则为默认值
}),Object.create(空))
}
console.info(已转换)
这里是解决您的问题的非常直接的实现。对于迭代,我考虑了对象内部Name数组的长度
var数据=[{
“姓名”:[“简”、“彼得”、“珍妮”],
“Id”:[1,2,3],
“年份”:[16、17、18]
}];
VarData1=[];
var迭代次数=数据[0]。Name.length;
var requiredData=数据[0];
var keyArray=Object.keys(requiredData);
对于(var i=0;i log('data1=',data1)
这里是解决您的问题的非常直接的实现。对于迭代,我考虑了对象内部Name数组的长度
var数据=[{
“姓名”:[“简”、“彼得”、“珍妮”],
“Id”:[1,2,3],
“年份”:[16、17、18]
}];
VarData1=[];
var迭代次数=数据[0]。Name.length;
var requiredData=数据[0];
var keyArray=Object.keys(requiredData);
对于(var i=0;i log('data1=',data1)
您可能会编写一些代码。你尝试过什么?如果Name
、Id
和Years
中的数组没有相同数量的项目,会发生什么情况?@Phil我认为不会发生这种情况,它会将0
放在相同数量的项目上,以更好地编写健壮的代码,以防没有。“我如何用JSX转换它?”-您不会使用任何JSX功能来进行转换,您会使用普通JS。您可能会编写一些代码。你尝试过什么?如果Name
、Id
和Years
中的数组没有相同数量的项目,会发生什么情况?@Phil我认为不会发生这种情况,它会将0
放在相同数量的项目上,以更好地编写健壮的代码,以防没有。“我如何用JSX转换它?”-您不会使用任何JSX功能进行转换,而是使用普通JS。