茅侃侃
2023-07-14 16:38:26
可以說我有這樣的對(duì)象:{1: [1,2,3],2: [4,6,7],3: [5, 8,9,10]etc..}現(xiàn)在我想通過值獲取值和鍵。所以我的輸入是:5,我需要獲取包含該 5 的對(duì)象的鍵和值,所以它3:[5,8,9,10]在上面的示例中。鑰匙就像物品的價(jià)值一樣重要。JS中有這樣的方法嗎?像包含在數(shù)組上之類的東西還是我需要循環(huán)它?如果對(duì)象有大約 10k 個(gè)鍵怎么辦?
2 回答

12345678_0001
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用Object.entries()。此代碼還將返回更多包含搜索值的對(duì)象。
const obj = {
1: [1, 2, 3],
2: [4, 6, 7],
3: [5, 8, 9, 10],
4: [5, 11, 19, 110]
}
const res = {}
for (const [key, value] of Object.entries(obj)) {
value.includes(5) ? res[key] = value : null;
}
console.log(res);

九州編程
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果對(duì)象有大約 10k 個(gè)鍵怎么辦?
您將必須迭代所有鍵/屬性,沒有辦法解決這個(gè)問題。Array#includes
也這樣做,只是在內(nèi)部。
一個(gè)簡(jiǎn)單的解決方案是Object.keys
結(jié)合Array#find
:
const?result?=?Object.keys(obj).find(key?=>?obj[key].includes(value));
添加回答
舉報(bào)
0/150
提交
取消