替换对象属性
var obj = [
{
name: '今天',
code: '123',
subs: [
{
name: '周一',
code: '1'
},
{
name: '周二',
code: '2'
}
]
},
{
name: '昨天',
code: '13',
subs: [
{
name: '周一',
code: '1'
},
{
name: '周二',
code: '2'
}
]
}
];
function changeKey(obj, key, name) {
var tempObj = {};
var tempArr = [];
if ({}.toString.call(obj) === '[object Array]') {
obj.forEach(function (item, index) {
tempArr[index] = changeKey(item, key, name);
});
return tempArr;
} else if ({}.toString.call(obj) === '[object Object]') {
for (var itemKey in obj) {
if ({}.toString.call(obj[itemKey]) === '[object Object]') {
if (itemKey === key) {
tempObj[name] = changeKey(obj[itemKey], key, name);
} else {
tempObj[itemKey] = changeKey(obj[itemKey], key, name);
}
} else if ({}.toString.call(obj[itemKey]) === '[object Array]') {
obj[itemKey].forEach(function (item) {
if (itemKey === key) {
tempObj[name] = changeKey(obj[itemKey], key, name);
} else {
tempObj[itemKey] = changeKey(obj[itemKey], key, name);
}
});
} else {
if (itemKey === key) {
tempObj[name] = obj[itemKey];
} else {
tempObj[itemKey] = obj[itemKey];
}
}
}
return tempObj;
}
}
var newObj = changeKey(obj, 'name', 'label');
newObj = changeKey(newObj, 'code', 'value');
console.log('xx:', newObj);