将数组按照指定的顺序排序处理

文章讲述了如何使用JavaScript对包含城市名的对象数组进行排序,首先定义了一个指定顺序的数组,然后遍历原始数据,根据指定顺序将符合的城市对象添加到新数组中。最后,通过去重操作得到最终排序结果。若指定顺序数组中无空字符串,则无需额外的去重步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:原始数据按照指定顺序进行排序,原始数据中其余数据依次进行排序

指定顺序数据:


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中没有'' 则无需此操作

输出结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值