You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于对象的数组属性指定下标值对对象数组进行排序

基于对象数组中数组属性指定下标的排序方案

你可以直接在Array.sort()的比较函数中读取arrval对应下标的值做大小比较即可,基础实现如下:

// 按 arrval[1] 升序排序
arr.sort((a, b) => a.arrval[1] - b.arrval[1])

如果需要调整为降序,把两个值的位置互换即可:

// 按 arrval[1] 降序排序
arr.sort((a, b) => b.arrval[1] - a.arrval[1])

如果需要更灵活的通用实现,支持动态指定下标,可以封装为工具函数,同时补充边界兼容逻辑:

/**
 * 按arrval的指定下标排序
 * @param {Array} arr 待排序的对象数组
 * @param {Number} index arrval的目标下标
 * @param {String} order 排序方向,asc升序/desc降序
 * @returns {Array} 排序后的数组
 */
function sortByArrvalIndex(arr, index, order = 'asc') {
  return arr.sort((a, b) => {
    // 兼容arrval不存在、下标越界的异常场景,异常值默认按0处理
    const valA = a.arrval?.[index] ?? 0
    const valB = b.arrval?.[index] ?? 0
    return order === 'asc' ? valA - valB : valB - valA
  })
}

// 调用示例:按arrval[1]升序排序
const sortedArr = sortByArrvalIndex(arr, 1, 'asc')

以上代码运行后得到的结果和你给出的预期输出完全一致。

内容的提问来源于stack exchange,提问作者Shogun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:15:00