我怎么能找到关键在JavaScript对象时,他的深度是未知的
How can I find key in JavaScript Object when his depth is unknown?
如果我有一个这样的javascript对象:{a : { b: { c: { ... }}}}
,我怎么能找到如果有一个'x'键在对象和它的值是什么?
只要不担心循环引用,就可以执行以下操作
function findX(obj) {
var val = obj['x'];
if (val !== undefined) {
return val;
}
for (var name in obj) {
var result = findX(obj[name]);
if (result !== undefined) {
return result;
}
}
return undefined;
}
注意:这将直接在这个对象或它的原型链中搜索属性'x'。如果您特别希望将搜索限制在此对象中,可以执行以下命令
if (obj.hasOwnProperty('x')) {
return obj['x'];
}
和重复的模式递归调用findX
function hasKey(obj,key){
if(key in obj)
return true;
for(var i in obj)
if(hasKey(obj[i],key))
return true;
return false;
}
,
alert(hasKey({a:{b:{c:{d:{e:{f:{g:{h:{i:{}}}}}}}}}},'i'));
相关文章:
- 在不知道深度或父属性的情况下从对象中删除属性
- 递归深度比较
- 如何对映射插件创建的敲除对象进行深度复制
- 对广告服务器的未知信标调用
- 3d上的深度比例错误
- Axios spread()具有未知数量的回调参数
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- 反汇编的javascript jit代码调用未知函数
- 未知”<#"构造
- BatmanJS:深度嵌套路由
- Chai深度包含了对嵌套对象的断言
- Safari 5.1.7下载文件名未知的csv文件
- JavaScript:将线性JSON数组转换为深度未知的树结构
- 在 JavaScript 中的对象中设置具有未知深度的属性值
- 如何获得未知JSON层次结构的总深度
- 我怎么能找到关键在JavaScript对象时,他的深度是未知的
- 编写一个递归函数,迭代嵌套循环的深度未知
- 迭代未知深度的对象
- Javascript-在深度嵌套对象上迭代并更改某些未知值
- 用jQuery从未知深度的嵌套JSON构建级联下拉列表