美文网首页
将数组进行排序,可以是普通数据 可以json数组

将数组进行排序,可以是普通数据 可以json数组

作者: 糖小羊儿 | 来源:发表于2021-01-04 16:55 被阅读0次

     function sortArray(arr, key, isDesc = false) {

                if (!arr) {

                    return false;

                }

                let isArray = arr instanceof Array;

                if (!isArray) {

                    return false;

                }

                if (arr.length <= 1) {

                    return arr;

                }

                let temp = JSON.parse(JSON.stringify(arr));

                if (key) {

                    return temp.sort((a, b) => {

                        if (isDesc) {

                            return b[key] - a[key];

                        } else {

                            return a[key] - b[key];

                        }

                    });

                } else {

                    return temp.sort((a, b) => {

                        if (isDesc) {

                            return b - a;

                        } else {

                            return a - b;

                        }

                    });

                }

      }

    用途: 给数组排序

     参数:arr, key, isDesc

        * arr 可以是普通数据  可以json数组

        * key -> 有key就是json数组,没有key就是普通数组排序

        * desc -> true:从大到小  false -> 从小到大(默认),

    例子1:

     let arr = [36,74,21,7,367,16,86,85,94,241];

    sortArray(arr) // [7, 16, 21, 36, 74, 85, 86, 94, 241, 367 ]

    sortArray(arr,'',true)  // [367, 241, 94, 86, 85, 74, 36, 21, 16, 7]

    例子2:

      let jsonarr = [

                {name:'小明',age:19,score:29},

                {name:'花花',age:29,score:8},

                {name:'兰兰',age:45,score:12},

                {name:'妮妮',age:24,score:32},

                {name:'巴巴',age:32,score:65},

                {name:'艾艾',age:4,score:89},

                {name:'赫赫',age:25,score:38},

            ];

    sortArray(jsonarr,'score') 

    sortArray(jsonarr,'age') 

    相关文章

      网友评论

          本文标题:将数组进行排序,可以是普通数据 可以json数组

          本文链接:https://www.haomeiwen.com/subject/nagfoktx.html