我正在使用真正的嵌套对象,有时是10级深度,最后一项始终是带数字的属性,例如:
let myObject = {
levelOne: {
levelTwo: {
levelThree: 1
}
}
};
我想知道是否可能,在不知道属性的确切名称的情况下,获取最后一项并将数字增加1。
感谢。
答案 0 :(得分:0)
请记住,这可以进行优化,并且可能应该使用hasOwnProperty。
您也可以将递归切换为一段时间。
这不是最好的解决方案。
你走了:
let myObject = {
levelOne: {
levelTwo: {
levelThree: 1
}
}
};
function getLast(object){
if (typeof object !== 'object'){
return object;
}
for ( prop in object){
return getLast(object[prop])
}
}
console.log(getLast(myObject));
答案 1 :(得分:0)
下面是一些使用下划线循环键的伪代码。您需要根据输入数据对其进行修改。
function findObject(){
_.some(myobject, function(val){
if(_.isObject(val)){
findObject(val);
}
if(_.isNumber(val)){
return val;
}
});
}
答案 2 :(得分:0)
这是函数get inner object:
function innerObject(o) {
return Object.keys(o).reduce(function (r, k) {
return typeof o[k] === 'object' ? innerObject(o[k]) : (r[k] = o[k], r)
}, {})
}