Javascript 从JS中的JSON对象检索数据
我在JS中遇到了JSON对象的问题。 我想为数据集合中的所有对象检索每个字符串的值数组 例如,我有Javascript 从JS中的JSON对象检索数据,javascript,arrays,json,dataframe,Javascript,Arrays,Json,Dataframe,我在JS中遇到了JSON对象的问题。 我想为数据集合中的所有对象检索每个字符串的值数组 例如,我有 mystuff = [{"item1":"12", "item2":"25", "item3":"16"}, {"item1":"14", "item2":"21", "item3":"18"}, {"item1":"13", "item2":"22", "item3":"17"}] 我在找 theGoodOne = [{"item1":["12", "14","13"]}, {"item2":
mystuff = [{"item1":"12", "item2":"25", "item3":"16"},
{"item1":"14", "item2":"21", "item3":"18"},
{"item1":"13", "item2":"22", "item3":"17"}]
我在找
theGoodOne = [{"item1":["12", "14","13"]},
{"item2":["25","21","22"]},
{"item3":["16","18","17"]}]
我相信我必须搜索数据框架,但我认为我的主要问题是我在进行富有成效的研究时使用的词汇不好
非常感谢 下面是一个转换数据结构的基本脚本:
mystuff=
[{“第1项”:“12”、“第2项”:“25”、“第3项”:“16”},
{“第1项”:“14”、“第2项”:“21”、“第3项”:“18”},
{“第1项”:“13”、“第2项”:“22”、“第3项”:“17”}];
var theGoodOne=mystuff.reduce(函数(acc,el){
Object.keys(el).forEach(函数(k){
if(el.hasOwnProperty(k)){
acc[k]=acc[k]| |[];
acc[k].推力(el[k]);
}
});
返回acc;
}, {});
控制台日志(theGoodOne)代码>以下是转换数据结构的基本脚本:
mystuff=
[{“第1项”:“12”、“第2项”:“25”、“第3项”:“16”},
{“第1项”:“14”、“第2项”:“21”、“第3项”:“18”},
{“第1项”:“13”、“第2项”:“22”、“第3项”:“17”}];
var theGoodOne=mystuff.reduce(函数(acc,el){
Object.keys(el).forEach(函数(k){
if(el.hasOwnProperty(k)){
acc[k]=acc[k]| |[];
acc[k].推力(el[k]);
}
});
返回acc;
}, {});
控制台日志(theGoodOne)
您可以使用reduce
和Object.values
来实现它
让mystuff=[{“item1”:“12”,“item2”:“25”,“item3”:“16”},
{“第1项”:“14”、“第2项”:“21”、“第3项”:“18”},
{“第1项”:“13”、“第2项”:“22”、“第3项”:“17”}];
让theGoodOne=Object.values(mystuff.reduce)(c,v)=>{
用于(v中的变量k){
c[k]=c[k]?c[k]:{};
c[k][k]=c[k][k]| |[];
c[k][k]。推(v[k]);
}
返回c;
}, {}));
控制台日志(theGoodOne)
您可以使用reduce
和Object.values
来实现它
让mystuff=[{“item1”:“12”,“item2”:“25”,“item3”:“16”},
{“第1项”:“14”、“第2项”:“21”、“第3项”:“18”},
{“第1项”:“13”、“第2项”:“22”、“第3项”:“17”}];
让theGoodOne=Object.values(mystuff.reduce)(c,v)=>{
用于(v中的变量k){
c[k]=c[k]?c[k]:{};
c[k][k]=c[k][k]| |[];
c[k][k]。推(v[k]);
}
返回c;
}, {}));
控制台日志(theGoodOne)代码>以下是您需要的基本转换:
const mystuff=[{“item1”:“12”,“item2”:“25”,“item3”:“16”},{“item1”:“14”,“item2”:“21”,“item3”:“18”},
{“第1项”:“13”、“第2项”:“22”、“第3项”:“17”}];
让响应=[];
让键=[]
for(mystuff的const mystuffKeys){
for(Object.keys的常数k(mystuffKeys)){
如果(!键包括(k)){
按键。按(k);
}
}
}
for(键的常数键){
const valArr=mystuff.map((项)=>item[key])
让数据={};
数据[键]=valArr;
响应推送(数据);
}
控制台日志(响应)代码>以下是您需要的基本转换:
const mystuff=[{“item1”:“12”,“item2”:“25”,“item3”:“16”},{“item1”:“14”,“item2”:“21”,“item3”:“18”},
{“第1项”:“13”、“第2项”:“22”、“第3项”:“17”}];
让响应=[];
让键=[]
for(mystuff的const mystuffKeys){
for(Object.keys的常数k(mystuffKeys)){
如果(!键包括(k)){
按键。按(k);
}
}
}
for(键的常数键){
const valArr=mystuff.map((项)=>item[key])
让数据={};
数据[键]=valArr;
响应推送(数据);
}
控制台日志(响应)代码>我认为最好使用以下es6表示法:
let Good = {}
mystuff.forEach(stuff=>{
for (const key in stuff){
Good[key] = Good[key] ? Good[key] : []
Good[key]=[ ...Good[key], stuff[key]]
}
})
console.log(Good)
现在代码变得紧凑且可读性更强了我认为最好使用es6表示法,如下所示:
let Good = {}
mystuff.forEach(stuff=>{
for (const key in stuff){
Good[key] = Good[key] ? Good[key] : []
Good[key]=[ ...Good[key], stuff[key]]
}
})
console.log(Good)
现在代码紧凑且可读性更强了请包含您目前尝试过但遇到问题的js代码。您可以使用javascript映射对象()。其中,键是items sting,值是另一个数组对象。请包含您当前尝试过但卡住的js代码。您可以使用javascript映射对象()。其中键是items,值是另一个数组对象。