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

相关内容

热门资讯

一分钟了解(扑克时间可以控制的... 一分钟了解(扑克时间可以控制的)竟然真的有挂(透视)详细教程(有挂规律)-哔哩哔哩;支持多人共享记分...
今日百科!wpk德州ai机器人... 【福星临门,好运相随】;今日百科!wpk德州ai机器人,菠萝德州app挂哪里买,详细教程(有挂教学)...
九瞬间实测(微扑克挂)外挂辅助... 微扑克挂新手教程相关信息汇总(需添加指定薇757446909获取下载链接);九瞬间实测(微扑克挂)外...
4分钟了解!扑克时间辅助软件,... 1、4分钟了解!扑克时间辅助软件,WEpoke软件透明挂,详细教程(有挂技巧)-哔哩哔哩;详细教程。...
透视黑科技!微扑克使用方法,w... 透视黑科技!微扑克使用方法,wpk输赢机制,详细教程(有挂了解)-哔哩哔哩,支持语音通讯、好友开房及...
科技通报(jj斗地主创建房间必... 科技通报(jj斗地主创建房间必赢神器)原来真的有挂(透视)详细教程(有挂方法)-哔哩哔哩;(需添加指...
十个机器人!微扑克辅助软件(透... 十个机器人!微扑克辅助软件(透视)外挂辅助挂(2024已更新)(哔哩哔哩);微扑克辅助最新版本免费下...
科普攻略!wpk ai,wep... 科普攻略!wpk ai,wepok软件透明挂,详细教程(有挂规律)-哔哩哔哩;科技详细教程小薇《75...
一分钟了解!吉祥棋牌科技有挂的... 一分钟了解!吉祥棋牌科技有挂的,智星德州辅助,详细教程(有挂攻略)-哔哩哔哩;建议优先通吉祥棋牌科技...
透视规律(微友麻将有挂的管用的... 微友麻将有挂的管用的透视辅助版本解析‌,透视规律(微友麻将有挂的管用的)竟然真的有挂(透视)详细教程...