2 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
Object.keys()
Object.keys()
將為變量中的對(duì)象創(chuàng)建一個(gè)鍵數(shù)組object
find()
將找到與條件匹配的匹配鍵。在您的情況下,匹配該toSearch
鍵的數(shù)組值內(nèi)的文本,您可以使用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貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以創(chuàng)建一個(gè)函數(shù)并傳遞對(duì)象和 val。在函數(shù)內(nèi)部使用迭代對(duì)象for..in并檢查值是否包含搜索的文本。如果是這樣,則將鍵推入數(shù)組并返回它。這個(gè)返回的數(shù)組將包含所有在其值數(shù)組中包含搜索文本的鍵名
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'))
添加回答
舉報(bào)