这似乎是一个基本的问题,但我对编码还不熟悉,只是找不到答案。(我在StackOverflow上搜索过很多次了。)
下面是一个JSON对象:
const json = {
"catalog:aardvark": {
"severity": "minor"
},
"catalog:baboon": {
"severity": "minor",
"testDependency": "dashboard:echidna"
},
"catalog:capybara": {
"severity": "minor",
"testDependency": "dashboard:ferret"
},
"dashboard:dingo": {
"severity": "minor"
},
"dashboard:echidna": {
"severity": "minor"
},
"dashboard:ferret": {
"severity": "minor"
}
}使用普通的JavaScript或ES6或Node模块,我需要返回键"catalog:capybara",但我只能使用键"testDependency"和/或值"dashboard:ferret"。其余的都不为这些目的所知。
我已经尝试了很多事情,但都没有用,我将不让你知道我的失败的细节。再一次,这看起来应该很简单。我非常感谢你的帮助!
PS:不要对许多键和值包括字符:这一事实感到困惑
发布于 2019-01-03 21:38:25
您可以获取对象的键并找到嵌套的对象,然后返回键。
function find(object, key, value) {
return Object.keys(object).find(k => object[k][key] === value);
}
var object = { "catalog:aardvark": { severity: "minor" }, "catalog:baboon": { severity: "minor", testDependency: "dashboard:echidna" }, "catalog:capybara": { severity: "minor", testDependency: "dashboard:ferret" }, "dashboard:dingo": { severity: "minor" }, "dashboard:echidna": { severity: "minor" }, "dashboard:ferret": { severity: "minor" } };
console.log(find(object, 'testDependency', 'dashboard:ferret'));
发布于 2019-01-03 21:44:36
您可以将JSON映射到一个键/值数组,如下所示:
const array = Object.keys(json).map((key) => {
return {key: key, value: json[key] };
});然后可以对键/值进行筛选:
const filtered = array.filter((obj) => {
return obj.key === "catalog:capybara" || obj.value.testDependency === "dashboard:ferret";
});https://stackoverflow.com/questions/54030081
复制相似问题