我有一个像这样的东西

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'中的值转换为新对象的键。

08-19 14:41