JavaScript中一个对象数组按照另一个数组排序

JavaScript中一个对象数组按照另一个数组排序

需求:排序

  1. const arr1 = [33, 11, 55, 22, 66];
  2. const arr2 = [{age: 55}, {age: 22}, {age: 11}, {age: 66}, {age: 33}]
  3. 数组arr2中每项都是一个对象,对象中age属性 === 数组arr1中的项
  4. 将arr2数组根据对象的age值在arr1中的位置排序, 排序后的结果为 `const arr2 = [ {age: 33},{age: 11}, {age: 55}, {age: 22}, {age: 66}]

步骤:

 const arr1 = [33, 11, 55, 22, 66]; 
 const arr2 = [{age: 55}, {age: 22}, {age: 11}, {age: 66}, {age: 33}]
 
 console.log('排序前arr2 => ', arr2) 

 // 排序 arr2
 arr2.sort((prev, next) => {
  const p = arr1.indexOf(prev.age)
  const n = arr1.indexOf(next.age)
  return p - n
})

// 排序 arr2(简写)
arr2.sort((prev, next) => {
  return arr1.indexOf(prev.age) - arr1.indexOf(next.age)
})

console.log('排序后arr2 => ', arr2)
console.log('           arr1 => ', arr1)

猜你喜欢

转载自www.cnblogs.com/guojbing/p/10872867.html