解决对象型数组中某一对象属性的排序问题

问题:有一对象型数组,每项对象中有一属性,希望根据该属性值(name)排序。

例子:[ {type: ' ' , requierd: true , name: '参数1' , ...},{type: ' ' , requierd: true , name: '参数2' , ...} ......]

解决方案:1. 先将该数组按name属性排序。(构造一个函数)2. 再将其遍历

代码:const sorts = (arr) => {

             const newArr = arr.sort( (a, b) => +a.name.split('参数')[1] - +b.name.split('参数')[1] )

             return newArr

         }

分析:1. split() : 把字符串分割成字符串数组【 a/b.name就是字符串 '参数1/2/3' ,split分割是以参数进行分割 ,参数前面没有,所以为空,结果是[' ' , ' 1 /2/...'] ,取数组中的第二项】

         2. sort() :将数组中的元素进行排序(默认按字母排序)【如果按数字排序的话,必须通过函数作为sort中的参数来调用】

         【 数字升序:将function(a, b)=> { return  a - b }作为参数传到sort中 】

         

posted @ 2022-06-02 11:28  平平安安啊  阅读(104)  评论(0)    收藏  举报