2 回答
TA贡献1951条经验 获得超3个赞
Object.keys()
Object.keys()
将为变量中的对象创建一个键数组object
find()
将找到与条件匹配的匹配键。在您的情况下,匹配该toSearch
键的数组值内的文本,您可以使用includes()
甚至indexOf(toSearch) !== -1
var object = { "a" : [], "b" : ["S","W"], "c" : ["N","E"]};
var toSearch = 'S';
var key = Object.keys(object).find((key) => object[key].includes(toSearch));
console.log(key);
您还可以使用另一种方式,Object.entries()
例如:
var object = { "a" : [], "b" : ["S","W"], "c" : ["N","E"]};
var toSearch = 'S';
var key = (Object.entries(object).find(([key, value]) => value.includes(toSearch)) || [])[0];
console.log(key);
TA贡献1998条经验 获得超6个赞
您可以创建一个函数并传递对象和 val。在函数内部使用迭代对象for..in并检查值是否包含搜索的文本。如果是这样,则将键推入数组并返回它。这个返回的数组将包含所有在其值数组中包含搜索文本的键名
var object = {
"a": [],
"b": ["S", "W"],
"c": ["N", "E", "S"]
}
function getKey(obj, val) {
let keyArr = [];
for (let keys in obj) {
if (obj[keys].includes(val)) {
keyArr.push(keys)
}
}
return keyArr;
}
console.log(getKey(object, 'S'))
添加回答
举报