假設與形式的父容器對象:
var parentObj =
{
obj: {
key: value,
key2: value,
}
obj2: {
key3: value
}
...
}
此外,如果我們要包括的每個子鍵只有一次, 我們
var objNameArray = ['obj','obj2','objN'];
var allValues = [];
var usedKeys = {};
for(var i = 0; i < objNameArray.length; ++i){
// If the parent object does not have a matching sub-object, skip to the
// next iteration of the loop
if(!parentObj[objNameArray[i]]) {
continue;
}
var currentObj = parentObj[objNameArray[i]];
var subKeys = Object.keys(currentObj);
for(var j = 0; j < subKeys.length; ++j) {
if(usedKeys[subKeys[j]]) {
continue;
}
usedKeys[subKeys[j]] = true;
allValues.push(currentObj[subKeys[j]]);
}
}
所有值從所有的按鍵在每個子對象中將會出現在數組allValues
中,並且通過調用Object.keys(usedKeys);
可以獲得每個子對象的所有鍵。請注意,如果子對象也可以有子對象,則需要調整此策略以支持遞歸。
循環數組,使用數組鍵和*初始對象*屬性名稱。 –
如果您只關心按鍵,無論發生什麼值,都可以將這些對象合併在一起,然後遍歷該對象的按鍵。 –
什麼是初始對象屬性名稱? – Himmators