天天看點

将數組按照指定的順序排序處理

需求:原始資料按照指定順序進行排序,原始資料中其餘資料依次進行排序

指定順序資料:

let arr = ['北京','上海', '深圳', '天津', '']
           

備注: 如果隻按照’北京’,‘上海’, ‘深圳’, ‘天津’ 排序的話 數組中去掉‘’空字元串, 下面的邏輯進行中也就不需要去重操作

原始資料:

let rows = [
  {
    name: '西安',
    cityCode: 2001
  },
  {
    name: '上海',
    cityCode: 1002
  },
  {
    name: '重慶',
    cityCode: 2003
  },
  {
    name: '北京',
    cityCode: 1001
  },
  {
    name: '石家莊',
    cityCode: 2009
  },
  {
    name: '邯鄲',
    cityCode: 2007
  },
  {
    name: '深圳',
    cityCode: 2005
  },
  {
    name: '南京',
    cityCode: 2004
  },
  {
    name: '天津',
    cityCode: 1004
  },
]
           

排序:

let newarr = []  // 排序後的新數組
arr.map(num => {
  rows.map(item => {
    if (item.name.indexOf(num) > -1) {
      newarr.push(item)
    }
  })
})
console.log([...new Set(newarr)])  // 進行去除操作, 如果arr中沒有'' 則無需此操作
           

輸出結果:

将數組按照指定的順序排序處理

繼續閱讀