我正在使用forEach迭代javascript中的对象。它按预期工作,直到我尝试迭代子字段。我如何使用forEach迭代字段和子字段?下面是一段代码以及预期和实际结果。任何帮助将不胜感激:)
const person = {
first: 'Joe',
last: 'Dirt',
previous: {
last: 'Sand',
}
};
const attributes = [
'first',
'last',
'previous.last' <-- Undefined. How do I access this?
];
attributes.forEach(element => {
console.log(person[element]);
});
预期:
-Joe
-Dirt
-Sand
结果:
-Joe
-Dirt
-undefined
答案 0 :(得分:1)
您可以借助临时对象迭代splitted属性。
var person = { first: 'Joe', last: 'Dirt', previous: { last: 'Sand', } },
attributes = ['first', 'last', 'previous.last'];
attributes.forEach(function (element) {
var obj = person;
element.split('.').forEach(function (a) {
obj = obj[a];
});
document.write(obj + '<br>');
});
&#13;