按照给定数组排序原数组

一:给定数组没有key

 // data:排序数组的依据,sortData:需要排序的数组,fieldValue:排序的数组对应依据数组的key
    function sortArr(data, sortData, fieldValue) {
        let arr = sortData.sort((a, b) => { 
            return data.indexOf(a[fieldValue]) - data.indexOf(b[fieldValue])
        })
        return arr
    }

    let sortData = [
        {
            name:'黄色人群',
            value:100,
        },
        {
            name:'绿色人群',
            value:10,
        },
        {
            name:'红色人群',
            value:190,
        }
    ]
    let data= ['红色人群','黄色人群','绿色人群',] 

    let newArr = sortArr(data, sortData,'name')
    console.log(newArr); 
    /*
    [
        {
            name:'红色人群',
            value:190,
        },
        {
            name:'黄色人群',
            value:100,
        },
        {
            name:'绿色人群',
            value:10,
        },
    ]
    */

二:给定数组是数组对象

 function sortArr(data, sortData, fieldValue) {
        let arr = sortData.sort((a, b) => { 
            let order = data.map((e) => e[fieldValue])
            return order.indexOf(a[fieldValue]) - order.indexOf(b[fieldValue])
        })
        return arr
    }

    let sortData = [
        {
            name:'黄色人群',
            value:100,
        },
        {
            name:'绿色人群',
            value:10,
        },
        {
            name:'红色人群',
            value:190,
        }
    ]
    let data= [
        {name:'红色人群'},
        {name:'黄色人群'},
        {name:'绿色人群'}

    ] 

    let newArr = sortArr(data, sortData,'name')
    console.log(newArr); 
    /*
    [
        {
            name:'红色人群',
            value:190,
        },
        {
            name:'黄色人群',
            value:100,
        },
        {
            name:'绿色人群',
            value:10,
        },
    ]
    */

 

posted @ 2021-08-17 16:46  张健华  阅读(57)  评论(0编辑  收藏  举报