gpt4 book ai didi

javascript - 查找对象是否具有值(多维对象)的最快方法是什么

转载 作者:行者123 更新时间:2023-12-03 01:16:37 25 4
gpt4 key购买 nike

我有一个具有 3 级深度的多维对象。我正在尝试第三级对象是否具有给定值。我想到的是 for 循环遍历每个级别并检查 (Object.values(obj).indexOf('red') > -1) 但据我所知, for 循环是缓慢的方式。

例如,在下面的对象中,检查最内部的值是否有 red 值并返回 bool 值的最快方法是什么?

myObj: {
user1: {
apples: {
1: "red",
2: "green",
3: "black"
},
cherry: {
2: "green"
4: "dark"
}
},

user2: {
orange: {
1: "orange"
}
}
}

最佳答案

这是一个递归方法,使用 Oject.values()Array.some()检查对象中是否存在值:

const obj = {"user1":{"apples":{"1":"red","2":"green","3":"black"},"cherry":{"2":"green","4":"dark"}},"user2":{"orange":{"1":"orange"}}};

const findValue = (o, val) => Object.values(o)
.some((v) => v && typeof(v) === 'object' ? findValue(v, val) : (v === val));

console.log(findValue(obj, 'red'));
console.log(findValue(obj, 'gold'));

关于javascript - 查找对象是否具有值(多维对象)的最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49834723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com