按照参数对嵌套对象进行排序的JS
创始人
2024-08-23 13:30:14
0

以下是一个按照参数对嵌套对象进行排序的示例代码:

// 嵌套对象数组
const objArray = [
  { name: "John", age: 30, nestedObj: { score: 80 } },
  { name: "Amy", age: 28, nestedObj: { score: 90 } },
  { name: "Bob", age: 35, nestedObj: { score: 75 } }
];

// 按照参数对嵌套对象进行排序函数
function sortByParameter(arr, parameter) {
  return arr.sort((a, b) => {
    // 使用参数路径来获取嵌套对象的值
    const aValue = getNestedValue(a, parameter);
    const bValue = getNestedValue(b, parameter);
    
    // 比较两个对象的值并返回排序结果
    if (aValue < bValue) {
      return -1;
    } else if (aValue > bValue) {
      return 1;
    } else {
      return 0;
    }
  });
}

// 递归地获取嵌套对象的值
function getNestedValue(obj, path) {
  const keys = path.split(".");
  let value = obj;
  
  for (let key of keys) {
    value = value[key];
  }
  
  return value;
}

// 按照嵌套对象的score属性进行排序
const sortedArray = sortByParameter(objArray, "nestedObj.score");
console.log(sortedArray);

上述代码中,sortByParameter函数接受一个嵌套对象数组和一个参数路径作为参数。它使用getNestedValue函数来获取嵌套对象的值,并使用Array.prototype.sort方法对数组进行排序。getNestedValue函数使用递归的方式获取嵌套对象的值,将参数路径拆分成键数组,并通过循环迭代嵌套对象来获取最终的值。

在示例中,我们将嵌套对象数组按照nestedObj.score进行排序,并将排序结果打印到控制台上。

相关内容

热门资讯

2026外挂!雀友会广东潮汕麻... 2026外挂!雀友会广东潮汕麻将辅助软件,芒果辅助器(好像是有挂)1、用户打开应用后不用登录就可以直...
2026外挂!哈糖大菠萝辅助,... 2026外挂!哈糖大菠萝辅助,奇迹手游辅助脚本平台免费(一直真的有挂)1、奇迹手游辅助脚本平台免费脚...
2026外挂!辅助定制交易平台... 2026外挂!辅助定制交易平台,情怀破解(本来有挂)1、起透看视 辅助定制交易平台辅助软件价格2、随...
2026外挂!九酷众游软件,5... 2026外挂!九酷众游软件,510k中至余干辅助(原来真的是有挂)1、玩家可以在510k中至余干辅助...
2026外挂!极速官方游戏暗堡... 2026外挂!极速官方游戏暗堡辅助器,楚天游辅助(其实存在有挂)1、上手简单,内置详细流程视频教学,...
2026外挂!免费游戏辅助软件... 2026外挂!免费游戏辅助软件,如何设置钱塘十三水辅助器(切实是真的有挂)1、2026外挂!免费游戏...
2026外挂!雀姬辅助脚本,微... 2026外挂!雀姬辅助脚本,微乐游戏辅助脚本安装(切实有挂)2026外挂!雀姬辅助脚本,微乐游戏辅助...
2026外挂!飞驰娱乐软件科技... 2026外挂!飞驰娱乐软件科技,科乐填大坑辅助器(切实真的有挂)1、科乐填大坑辅助器免费辅助多个强度...
2026外挂!皮皮胡子辅助,天... 2026外挂!皮皮胡子辅助,天天贵阳破解版(原来是真的有挂)天天贵阳破解版是不是有人用挂微扑克wpk...
2026外挂!科技实测欢乐辅助... 2026外挂!科技实测欢乐辅助,丽水都莱辅助软件(都是是有挂)小薇(辅助器软件下载)致您一封信;亲爱...