替换对象属性

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);
posted @ 2017-12-06 10:39  Wzybnzy  阅读(790)  评论(0编辑  收藏  举报