Javascript 将数组对象转换为对象的对象
目前我的数据如下所示Javascript 将数组对象转换为对象的对象,javascript,arrays,reactjs,javascript-objects,array.prototype.map,Javascript,Arrays,Reactjs,Javascript Objects,Array.prototype.map,目前我的数据如下所示 { numberOne: [{ timestamp: 3829383, value: 20323.23 }], numberTwo: [{ timestamp: 2382342, value: 120912.1 }] ... } 我想把它转换成这种格式 { numberOne: { timestamp: 3829383, valu
{
numberOne: [{
timestamp: 3829383,
value: 20323.23
}],
numberTwo: [{
timestamp: 2382342,
value: 120912.1
}]
...
}
我想把它转换成这种格式
{
numberOne: {
timestamp: 3829383,
value: 20323.23
},
numberTwo: {
timestamp: 2382342,
value: 120912.1
}
...
}
我尝试了对象。分配,映射()
,过滤器()
。。。似乎什么都不管用
任何关于我如何完成这项工作的想法都会非常有帮助您可以通过使用将输入对象转换为所需的输出:
const数据={
numberOne:[{时间戳:3829383,值:20323.23}],
numberTwo:[{时间戳:2382342,值:120912.1}]
};
const result=Object.entries(数据)
.reduce((r[k[v]])=>(r[k]=v,r),{});
控制台日志(结果)代码>
。作为控制台包装{max height:100%!important;top:0;}
您可以使用for(obj中的var键)
循环,并为每个键设置所需的值:
var obj={
numberOne:[{时间戳:3829383,值:20323.23}],
numberTwo:[{时间戳:2382342,值:120912.1}]
};
log(“Before-->”,obj);
for(obj中的var键){
obj[key]=obj[key][0];//从每个数组中获取项0
}
log(“之后-->”,obj)代码>枚举对象中的条目,取出每个数组中的第一个项,并使用键和项创建一个对象
const data={numberOne:[{时间戳:3829383,值:20323.23}],numberTwo:[{时间戳:2382342,值:120912.1}]}
常量转换=(arr)=>
Object.entries(arr.reduce)((acc[k[v]])=>(acc[k]=v,acc),{})
log(transform(data))
您可以使用重新生成对象来迭代(这将为您提供一个键和值的数组):
const数据={
号码:[{
时间戳:3829383,
价值:20323.23
}],
编号二:[{
时间戳:2382342,
价值:120912.1
}]
}
//抓取条目并迭代每个条目
//从数组中解构出键和值
const out=Object.entries(data).reduce((acc,[key,value])=>{
//在初始对象(acc)上设置关键点,然后设置
//要作为值数组的第一个元素的值
acc[键]=值[0];
//返回下一次迭代的初始对象(acc)
返回acc;
}, {});
控制台。注销代码>您的数据不能像第一个示例那样。您的输入数据看起来不是有效的JS代码。您的数据不能像这样[时间戳:3829383,值:20323.23]
。它错了,你确定它看起来像那样吗?前者既不是有效的json,也不是有效的js对象。抱歉,是的,你们都是正确的-我已经修改了代码。