我有以下对象: -
var list = {
nums: [
[117],
[108]
],
numsset: [
[2256, 2265],
[234],
[3445, 3442]
]
};
如果我在页面上有一个输入字段,客户输入了一个数字,那么我如何能够在该对象中搜索该值并返回密钥,例如。
Input Returned
108 nums
3445 numsset
2872
2265 numsset
我试图循环,但它没有产生所需的结果。
非常感谢任何帮助,并提前感谢您。
答案 0 :(得分:1)
以下是工作代码:
const list = {
nums: [
[117],
[108]
],
numsset: [
[2256, 2265],
[234],
[3445, 3442]
]
};
const findElement = (value) => {
let foundKey = '';
Object.keys(list).some((key) => {
const array = list[key];
const found = array.some(element => element.includes(value));
if (found) {
foundKey = key;
return true;
}
return false;
})
return foundKey;
}
console.log(findElement(2256));
console.log(findElement(108));
console.log(findElement(222));
答案 1 :(得分:0)
您可以构建一个哈希表并存储给定数字的键。
var list = { nums: [[117], [108]], numsset: [[2256, 2265], [234], [3445, 3442]] },
keys = {};
Object.keys(list).forEach(k => list[k].forEach(a => a.forEach(v => keys[v] = k)));
console.log(keys);