存在包含其他對象的對象。這個對象的鍵可以是未定義的,定義的或空的。我只對這些鍵的定義值和非空值感興趣。我將展示的例子: 數據對象,我想收集使用遞歸在JavaScript中過濾對象數據
var d = {
google: {
email: 'zurb @gmail.com',
name: 'k-pop Dorama',
token: 'ya2XObIhOB63qjwlw',
id: '11971093321'
},
twitter: {
displayName: 'Smart as a Genius',
id: '47252187865',
name: 'Paul Peter',
token: '47252ijoGYJ40bFAKvX'
},
facebook: {
email: '',
id: '1112961258784387',
name: 'Tomash Khamlai',
token: 'ERUTT8xK2oE7ZD'
}
}
領域:
var f = ["name", "email"];
功能,我試過:
function iterate(data, fields) {
var response = Object.create({}, "");
var property;
for (property in data) {
if (data.hasOwnProperty(property)) {
if (typeof data[property] === "object")
iterate(data[property], fields);
else {
fields.forEach(function(element) {
if (property === element) {
if (data[property] !== "") {
if (!response[element]) {
response[element] = [];
response[element].push(data[property]);
} else {
response[element].push(data[property]);;
}
}
}
});
}
}
}
}
iterate(d, f);
期望:
console.log(response);
{ name: ["k-pop Dorama", "Paul Peter", "Tomash Khamlai"], email: ["[email protected]"] }
它甚至不可訪問。我知道範圍。但我不明白「返回」這個詞應該在哪裏發生,因爲我只理解遞歸的基礎知識。 –