我基本上是想让一些代码在JSON文件中查找特定的JSON字符串,并报告其父名称是什么。我正在为此使用NodeJS。
例如:
{
"Array1" : [
"Thing1",
"Thing2",
"Thing3",
],
"Array2" : [
"Thing4",
"Thing5",
"Thing6"
]
}
我想要此代码执行的操作是获取一个我赋予它的值,例如“ Thing1”,并使用其所在的数组的名称进行报告,因此,我得到了它来搜索“ Thing1”,它给出了我回到“ Array1”。我得到它来搜索“ Thing4”,它返回“ Array2”。它提供的输出需要放在一个变量中,以便以后在我的代码中使用。
感谢您的帮助! 干杯, 内森。
答案 0 :(得分:2)
似乎我在这里参加聚会有点晚了,但是我认为在ES6中,您还可以通过一种更加“实用”的方式来做到这一点:
const search = (obj, value) => Object.keys(obj).find(k => obj[k].includes(value));
然后您可以执行以下操作:
search(obj, 'Thing1')
答案 1 :(得分:1)
使用此:
function search(arr,searchStr)
{
for( a in arr)
if(arr[a].filter(t=>t==searchStr).length>0)
return a;
return null;
}
还有
search(yourArray,'Thing1');
答案 2 :(得分:0)
const obj = {
"Array1" : [
"Thing1",
"Thing2",
"Thing3",
],
"Array2" : [
"Thing4",
"Thing5",
"Thing6"
]
};
const find = (obj, search) => {
const result = Object.keys(obj).map(key => {
if (obj[key].filter(thing => thing === search).length > 0)
return key;
return null;
}).filter(result => result != null);
if (result.length > 0) {
return result[0];
}
return null;
}
const array = find(obj, "Thing1");
console.log(array);