一:给定数组没有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, }, ] */