在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  HTML/ 數(shù)組對(duì)象重新排序

數(shù)組對(duì)象重新排序

   arr = [
        {id:1,name:'寵物美容'},
        {id:2,name:'清潔保養(yǎng)', children:[
            {id:4,name:'家庭清潔'}
            ]},
        {id:3,name:'汽車服務(wù)'}
    ];
    

上面的數(shù)組怎么重新排序成下面的格式?

   newArr = [
        {id:1,name:'寵物美容'},
        {id:2,name:'清潔保養(yǎng)'},
        {id:4,name:'家庭清潔'}
        {id:3,name:'汽車服務(wù)'}
    ];
    

各位老鐵幫忙看看~_~謝謝

回答
編輯回答
刮刮樂(lè)

1.遍歷arr,每個(gè)都取出id和name組成新的對(duì)象push進(jìn)去newArr

2.如果arr中的對(duì)象里childern存在著值,也把值的id和name取出來(lái)形成一個(gè)新的對(duì)象push進(jìn)newArr

2018年8月30日 12:40
編輯回答
萌二代

既然es6那肯定多用用es6了

let arr = [
    {id:1,name:'寵物美容'},
    {id:2,name:'清潔保養(yǎng)', children:[
            {id:4,name:'家庭清潔'}
        ]},
    {id:3,name:'汽車服務(wù)'}
];

function format(arr) {
    return arr.reduce((result, item) => {
        return [...result, {id:item.id,name:item.name}, ...item.children || []]
    },[]);
}

console.log(format(arr));
2018年5月6日 11:53
編輯回答
護(hù)她命

// 定義轉(zhuǎn)換方法
function getNewArr(arr = []) {
    let newArr = [];

    function eachArr(arr = []) {
        for (let item of arr) {
            const {
                id,
                name,
                children
            } = item;
            newArr.push({
                id,
                name,
            })
            if (children && children.length) {
                eachArr(children);
            }
        }
    }

    eachArr(arr);

    return newArr;
}

// 使用
let arr = [
        {id:1,name:'寵物美容'},
        {id:2,name:'清潔保養(yǎng)', children:[
            {id:4,name:'家庭清潔'}
            ]},
        {id:3,name:'汽車服務(wù)'}
];
let newArr = getNewArr(arr);
2017年12月20日 02:35
編輯回答
耍太極
function trans (arr) {
  return [].concat.apply([], arr.map(cur => {
    return [{id: cur.id, name: cur.name}].concat(cur.children ? trans(cur.children) : [])
  }))
}
let newArr = trans(arr)
2017年1月11日 00:22