如何使用值获取子对象键?

时间:2017-08-29 05:27:57

标签: javascript filter

我有如下嵌套对象,

 {
  "Types": {
    "TEST": {
      "name": "EC",
      "alloweMultipls": "true"
    },
    "TEST1": {
      "name": "ED",
      "alloweMultipls": "true"
    }
  }
}

如果我只有 allowMyltipls 键,而不是任何其他值,我该如何才能重新 "EC"

3 个答案:

答案 0 :(得分:3)

尝试这种方法。您可以获取fileTypes对象的所有属性,然后使用.filter函数对其进行迭代,并找到name等于key的属性。然后用该键检索嵌套对象。



const object = {
  "fileTypes": {
    "TEST": {
      "name": "EC",
      "alloweMultipls": "true"
    },
    "TEST1": {
      "name": "ED",
      "alloweMultipls": "true"
    }
  }
};

const key = 'EC';
const fileTypes = object.fileTypes;

const property= Object.keys(fileTypes).filter(item => fileTypes[item].name === key);

console.log(fileTypes[property]);




答案 1 :(得分:0)

迭代您的对象并检查'name'属性,如果它与您想要的匹配,则获取完整对象。简单而优雅的解决方案

var data = {
  "Types": {
    "TEST": {
      "name": "EC",
      "alloweMultipls": "true"
    },
    "TEST1": {
      "name": "ED",
      "alloweMultipls": "true"
    }
  }
};

for(d in data.Types){
    if(data.Types[d].name=='EC'){
        console.log(data.Types[d]);
    }
}

答案 2 :(得分:0)

Ataur Ra​​hman,

 var data = {  "Types": {
"TEST": {
  "name": "EC",
  "alloweMultipls": "true"
},
"TEST1": {
  "name": "ED",
  "alloweMultipls": "true"
}  }}


 var allMultiplesInEC = [];


for(var i=0;i<data.Types.length-1;++i){  if(data.Types[i].name =='EC'{

 allMultiplesInEC.push(data.Types[i].alloweMultipls);}
}

console.log(allMultiplesInEC);
相关问题