let treeData = [{
id: 1,
aname: '鄧稼先',
value: '核物理學家',
age: 1924,
children: [{
id: 11,
aname: '袁隆平',
value: '雜交水稻育種專家',
age: 1930,
children: []
}]
},
{
id: 2,
aname: '錢學森',
value: '空氣動力學家',
age: 1991,
children: [{
id: 22,
aname: '李四光',
value: '地質學家',
age: 1889,
children: [{
id: 222,
aname: '于敏',
value: '核物理學家',
age: 1926,
children: []
}]
}]
},
{
id: 3,
aname: '華羅庚',
value: '數學家',
age: 1910,
children: [{
id: 33,
aname: '錢三強',
value: '核物理學家',
age: 1913,
children: []
}]
}];
function tree(data) {
for (let key in data) {
if (key == "age") {
// 把數字型別轉為字串
data[key] = data[key].toString();
// 添加新屬性
data['scientist'] = data['aname'] + '是' + data['value'] + ',';
data['introduce'] = `${data['aname']}出生于 ${data[key]} 年,`;
// 注意
// 如果把 添加新屬性 放到判斷外面會出問題
// 因為無法把修改后的值賦值到對應位置
// 而且資料外層還多出新增的屬性
};
if (typeof data[key] == "object") {
// 遞回呼叫
// 注意:遞回需要設定跳出
// 否則會一直遞回造成記憶體溢位
tree(data[key]);
};
};
return data;
};
console.log(tree(treeData)); // 輸出結果
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/274084.html
標籤:其他
上一篇:理解ES6Class的繼承

