【发布时间】:2026-02-11 10:45:01
【问题描述】:
我有一个具有 3 级深度的多维对象。如果第三级对象具有给定值,我正在尝试。我想到的是for循环遍历每个级别并使用(Object.values(obj).indexOf('red') > -1)进行检查,但据我了解,for循环是一种缓慢的方式。
例如,在下面的对象中,检查任何最内部的值是否具有red 值并返回布尔值的最快方法是什么?
myObj: {
user1: {
apples: {
1: "red",
2: "green",
3: "black"
},
cherry: {
2: "green"
4: "dark"
}
},
user2: {
orange: {
1: "orange"
}
}
}
【问题讨论】:
-
嗨,为什么不用
myObj.user1.apples搜索一下呢? -
for-looping 和使用
Object.values一样慢。不,没有比线性搜索更好的方法了,除非你建立一个查找结构(只有在你需要进行多次查找时才会变得高效)。 -
@ankabout 这只是一个伪示例。抱歉,它太假了。
标签: javascript object ecmascript-6