按照参数对嵌套对象进行排序的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进行排序,并将排序结果打印到控制台上。

相关内容

热门资讯

透视窍要!epoker透视(H... 透视窍要!epoker透视(HHpoker功能)果然是有辅助方法(哔哩哔哩)1、每一步都需要思考,不...
透视技法!wepoker轻量版... 透视技法!wepoker轻量版透视方法(WePoKer祈福)总是真的是有辅助软件(哔哩哔哩)1、在w...
透视秘籍!wepoker免费脚... 透视秘籍!wepoker免费脚本咨询(德普之星有透视)真是有辅助教程(哔哩哔哩)1、许多玩家不知道w...
透视教材!werplan脚本(... 透视教材!werplan脚本(德普之星下载)切实是真的有辅助神器(哔哩哔哩)1、游戏颠覆性的策略玩法...
透视策略!xpoker辅助器(... 透视策略!xpoker辅助器(WePoKer透视脚本)一贯存在有辅助方法(哔哩哔哩)1、玩家可以在x...
透视方针!hhpoker德州作... 透视方针!hhpoker德州作必弊(WePoKer咨询)一贯真的有辅助教程(哔哩哔哩)透视方针!hh...
透视烘培!hhpoker透视脚... 透视烘培!hhpoker透视脚本视频(德普之星辅助软件)确实有辅助方法(哔哩哔哩)1、很好的工具软件...
透视积累!hhpoker德州透... 透视积累!hhpoker德州透视(德普之星开辅助)真是是真的有辅助技巧(哔哩哔哩)1、打开软件启动之...
透视法门!wepoker透视脚... 透视法门!wepoker透视脚本苹果版(AApoker安装包)确实有辅助技巧(哔哩哔哩)wepoke...
透视策略!聚星ai辅助工具下载... 透视策略!聚星ai辅助工具下载(WePoKer私人)都是是真的有辅助app(哔哩哔哩)聚星ai辅助工...