arr1
arr2
arr1.sort((prev,next)=>{
return arr2.indexOf(prev)-arr2.indexOf(next)
})
这是arr1按照arr2排序
延伸
// 一个数组按照另一个数组排序
// 对象内的键值排序
// 简单类型数组
let arr1 = [1, 2, 3, 4, 5]
let arr2 = [5, 3, 2, 4, 1]
arr1.sort((prev, next) => {
return arr2.indexOf(prev) - arr2.indexOf(next)
})
console.log(arr1)
// 复杂数组
let arr3 = [
{
id: 1,
name: 'fasfdads',
age: 131
},
{
id: 2,
name: 'fasfdads',
age: 131
},
{
id: 3,
name: 'fasfdads',
age: 131
},
]
let arr4 = [
{
id: 3,
hh: 'fasfdads',
age: 131
},
{
id: 2,
hh: 'fasfdads',
age: 131
},
{
id: 1,
hh: 'fasfdads',
age: 131
},
]
arr3.sort((prev, next) => {
return arr4.indexOf(prev.id) - arr4.indexOf(next.id)
//必须是id这种可以比较的才能弄。。。。,假如字符串这种就没作用
})
console.log(arr3)
/ 对象的属性怎么排序
let arrData = { "张三": 15, "李四": 30, "万系": 2, "是三": 3 };
let keysSorted = Object.keys(arrData).sort(function (a, b) { return arrData[b] - arrData[a] }) //排序健名
let newD = {}
for (let i = 0; i < keysSorted.length; i++) {
newD[keysSorted[i]] = arrData[keysSorted[i]];
}
console.log(keysSorted, arrData, newD)
对象的长度