ネストされたオブジェクトの最後の項目を取得し、そして最後の項目は常に数、例のプロパティです:私は、本当のネストされたオブジェクトで、時には10のレベルの深働いている
let myObject = {
levelOne: {
levelTwo: {
levelThree: 1
}
}
};
が、私があれば知りたいのですがプロパティの正確な名前を知らずに、最後の項目を取得して1を増やすことができます。
ありがとうございました。
ネストされたオブジェクトの最後の項目を取得し、そして最後の項目は常に数、例のプロパティです:私は、本当のネストされたオブジェクトで、時には10のレベルの深働いている
let myObject = {
levelOne: {
levelTwo: {
levelThree: 1
}
}
};
が、私があれば知りたいのですがプロパティの正確な名前を知らずに、最後の項目を取得して1を増やすことができます。
ありがとうございました。
これは最適化することができ、おそらく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));
は、あなたの鍵をループに下線使用して、いくつかの擬似コードです。入力データに応じて変更する必要があります。ここで
function findObject(){
_.some(myobject, function(val){
if(_.isObject(val)){
findObject(val);
}
if(_.isNumber(val)){
return val;
}
});
}
は内部オブジェクトの機能を取得です:ために、
function innerObject(o) {
return Object.keys(o).reduce(function (r, k) {
return typeof o[k] === 'object' ? innerObject(o[k]) : (r[k] = o[k], r)
}, {})
}
はい、その可能性を、 –
に再帰あなたは再帰を試みたことがありますか? – Bergi
私はあなたが "最後"ではなく "最奥"を意味すると思います - オブジェクトのプロパティは注文されません。 – Bergi