我有以下代码:
var search_value = 'XYZ';
var FIELD_MAP = {
'key1': [
'SOME',
'THING'
],
'key2': [
'ANOTHER_VALUE',
'XYZ'
]
};
我需要找到哪个数组(key1,key2等)有一个存储在变量search_value中的值。这样做的最佳方式是什么?
答案 0 :(得分:1)
您可以通过过滤FIELD_MAP
对象上的键来检查该值是否包含search_value
,方法是使用Object.keys
来获取密钥,Array.filter
来过滤它们。
var key = Object.keys(FIELD_MAP).filter(function(k){
return ~FIELD_MAP[k].indexOf(search_value);
})[0]; // remove the [0] if you want multiple keys matching the criteria
答案 1 :(得分:1)
这可以通过迭代FIELD_MAP的属性并检查所需的搜索字符串是否可用来实现:
for (var key in FIELD_MAP) {
if (FIELD_MAP.hasOwnProperty(key)) {
if (FIELD_MAP[key].indexOf(search_value) > 0) {
console.log("Found in=",key)
}
}
}