Javascript 将JSON对象格式化为对象数组
我想转换下面的JSON格式Javascript 将JSON对象格式化为对象数组,javascript,arrays,json,object,browser,Javascript,Arrays,Json,Object,Browser,我想转换下面的JSON格式 let init = { test1: [1, 2, 3, 4, 5], test2: [6, 7, 8, 9, 10] } 使用数组或对象的javascript本机方法转换为此格式(所有浏览器都支持) 我试过for循环,下面是代码 let keys = Object.keys(init); let result = []; for(let i = 0; i < keys.length; i++){ let key = keys[i]; f
let init = {
test1: [1, 2, 3, 4, 5],
test2: [6, 7, 8, 9, 10]
}
使用数组或对象的javascript本机方法转换为此格式(所有浏览器都支持)
我试过for循环,下面是代码
let keys = Object.keys(init);
let result = [];
for(let i = 0; i < keys.length; i++){
let key = keys[i];
for(let j = 0; j < init[key].length; j++){
if(i === 0){
let obj1 = {};
obj1[key] = init[key][j];
result.push(obj1);
}else{
let obj2 = result[j];
obj2[key] = init[key][j];
}
}
}
let keys=Object.keys(init);
让结果=[];
for(设i=0;i
你可以用它来做
迭代test1
数组元素,并使用test1
和test2
属性及其各自的值将新对象推送到数组累加器
let init={
测试1:[1,2,3,4,5],
测试2:[6,7,8,9,10]
};
让keys=Object.keys(init);
设key1=keys[0];
设key2=keys[1];
让result=init[key1]。reduce((acc,curr,i)=>{
加速推({
[键1]:当前,
[key2]:init[key2][i]
});
返回acc;
}, []);
控制台日志(结果)代码>您可以使用for…in和Array.forEach的组合,只需几行代码即可实现此结果。如果你不想支持所有的浏览器,你可以更好地使用var而不是let
var init={
测试1:[1,2,3,4,5],
测试2:[6,7,8,9,10]
}
var结果=[]
for(初始化中的变量键){
init[key].forEach(函数(项,索引){
结果[索引]?结果[索引][键]=项:结果[索引]={[键]:项}
})
}
console.log(result)
您能添加到目前为止尝试过的内容吗?谢谢Nick,我只使用了for循环,但我想用javascript本机方法来实现这一点,我想不出任何方法this@ggorlen我已经用for循环发布了我的尝试。由于我目前不熟悉使用JS原生方法,所以我使用了for循环。为了更清楚地理解分组逻辑,我已经更改了Test2属性值,如果您认为任何答复都回答了您的问题,那么考虑将其标记为对未来读者有益。更多信息:。感谢您的回答。虽然如果我在init object中有两个以上的属性,比如test1到testn具有相同长度的数组,那么我认为在reduce函数中我们需要添加for loopThat's right@narendersaran-afor
循环来迭代对象键。
let keys = Object.keys(init);
let result = [];
for(let i = 0; i < keys.length; i++){
let key = keys[i];
for(let j = 0; j < init[key].length; j++){
if(i === 0){
let obj1 = {};
obj1[key] = init[key][j];
result.push(obj1);
}else{
let obj2 = result[j];
obj2[key] = init[key][j];
}
}
}