可以说我有这样的对象:{1: [1,2,3],2: [4,6,7],3: [5, 8,9,10]etc..}现在我想通过值获取值和键。所以我的输入是:5,我需要获取包含该 5 的对象的键和值,所以它3:[5,8,9,10]在上面的示例中。钥匙就像物品的价值一样重要。JS中有这样的方法吗?像包含在数组上之类的东西还是我需要循环它?如果对象有大约 10k 个键怎么办?
2 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
您可以使用Object.entries()。此代码还将返回更多包含搜索值的对象。
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贡献1785条经验 获得超4个赞
如果对象有大约 10k 个键怎么办?
您将必须迭代所有键/属性,没有办法解决这个问题。Array#includes
也这样做,只是在内部。
一个简单的解决方案是Object.keys
结合Array#find
:
const result = Object.keys(obj).find(key => obj[key].includes(value));
添加回答
举报
0/150
提交
取消