js数组根据另一个数组进行排序

在开发中,当后端返回的数据顺序不确定时,需要根据前端定义的顺序展示。文章提供了两种方法对数据进行排序:一种是通过映射和indexOf,另一种是使用findIndex。这两种方法确保了数据按照前端指定的键的顺序排列。
摘要由CSDN通过智能技术生成

在日常开发中碰到 自定义表头展示选择数据 需要按照前端定义的顺序(某种规则)展示数据,后端返回的顺序是不确定的,这个时候就需要进行排序来满足条件。记录一下。

// 后端返回数据
let arr1 = [{configItemKey: "robot.chargeFirst", configItemValue: "FALSE"},
{configItemKey: "robot.poseStatus", configItemValue: "FALSE"},
{configItemKey: "companyName", configItemValue: "FALSE"},
{configItemKey: "source", configItemValue: "TRUE"},
{configItemKey: "robot.ip", configItemValue: "FALSE"}]

// 前端数据
let arr2 = [{titleKey: 'time', key: 'breakdownTime'},
{titleKey: 'robot.iptime', key: 'robot.ip'},
{titleKey: 'robot.chargeFirsttime', key: 'robot.chargeFirst'},
{titleKey: 'time2', key: 'breakdownTime2'},
{titleKey: 'robot.poseStatustime', key: 'robot.poseStatus'},
{titleKey: 'companyNametime', key: 'companyName'},
{titleKey: 'sourcetime', key: 'source'}]

// 方法一
const Arr = arr2.map(item=> item.key)
arr1.sort((a,b) => Arr.indexOf(a.configItemKey) - Arr.indexOf(b.configItemKey))
console.log(arr1)


// 方法二
arr1.sort((a,b) => arr2.findIndex(item=>item.key == a.configItemKey) - arr2.findIndex(item=>item.key == b.configItemKey))
console.log(arr1)


// 简单数组
var arr1 = [52,23,36,11,09];
var arr2 = [23,09,11,36,52];
// 要求arr1按照arr2的顺序来排序,可以看到两个数组都不是常规的从小到大排序的

arr1.sort((a,b) => arr2.indexOf(a)-arr2.indexOf(b))
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值