我有一个像这样的东西
var Data= {
"firstname": {
"excelcolumnName": "firstName",
"dbcolumn": "one",
"testinfo": "basictest"
},
"labname": {
"excelcolumnName": "LabName",
"dbcolumn": "two",
"testinfo": "basictest"
},
"percentCbd": {
"excelcolumnName": "Percent CBD",
"dbcolumn": "three",
"testinfo": "Final Test"
}
"percentgeneral": {
"excelcolumnName": "Percent General",
"dbcolumn": "four",
"testinfo": "Final Test"
}
}
我想要过滤并创建包含testinfo:“ basictest”的新对象,单个对象的输出应如下所示。
{
"one":"basictest",
"two":"basictest"
}
任何人都可以在这方面帮助我。
最佳答案
据我了解,您想要一个包含dbcolumn:testinfo映射的对象
Check this JSBin
var Data2={};
_.map(Data,(obj)=>{
if(obj.testinfo==='basictest'){
var newObj={};
newObj[obj.dbcolumn]=obj.testinfo;
return _.assign(Data2,newObj);
}
});
console.log(Data2);
map函数将每个对象“映射”为其他对象。分配合并这些键值对。 newObj [obj.dbcolumn]行将'dbcolumn:value'中的值转换为新对象的键。