美文网首页
js 根据数组对象里面的某个属性值进行从大到小,从小到大排序

js 根据数组对象里面的某个属性值进行从大到小,从小到大排序

作者: 这是这时 | 来源:发表于2020-01-19 00:22 被阅读0次
在JavaScript里使用sort方法,根据数组对象里面的某个属性值进行从大到小,从小到大排序
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        let list = [
            { name: "zs3", data: "20200110", age: 10 },
            { name: "zs6", data: "20200113", age: 13 },
            { name: "zs2", data: "20200109", age: 9 },
            { name: "zs8", data: "20200115", age: 15 },
            { name: "zs4", data: "20200111", age: 11 },
            { name: "zs1", data: "20200108", age: 8 },
            { name: "zs7", data: "20200114", age: 14 },
            { name: "zs5", data: "20200112", age: 12 }
        ]

        /* -----------sort排序-------------------- */
        /* let arr = [];
        list.map(item => arr.push(item.data));
        function sortNum(a, b) {
            // return b - a;//从大到小
            return a - b; //从小到大
        }
        arr.sort(sortNum);
        let arr2 = [];
        arr.forEach((v, i) => {
            list.forEach(res => {
                if (res.data === v) {
                    arr2.push(res);
                }
            });
        });
        list = arr2;
        console.log(list); 
*/

        /* -----------sort排序 粗鲁方法-------------------- */
        /*
        let arr = [];
        list.map(item => arr.push(item.data));
        arr.sort();
        let arr2 = [];
        arr.forEach((v, i) => {
            list.forEach(res => {
                if (res.data === v) {
                    arr2.push(res);
                }
            });
        });
        // list = arr2; //从小到大
        list = arr2.reverse();//从大到小
        console.log(list); 
       */

        /* ---------根据某个属性值排序 1 --------------------- */

        /* function compare(prop) {
            return function (a, b) {
                let v1 = a[prop];
                let v2 = b[prop];
                // return v1 - v2; //从小到大
                return v2 - v1; //从大到小
            };
        }
        list.sort(compare("data"));
        console.log(list);
        */

        /* ---------根据某个属性值排序 2 终极法--------------------- */
        // let a = list.sort((a, b) => { return b.data - a.data });/* 从大到小 */
        // console.log(a); 

        // let a = list.sort((a, b) => { return a.data - b.data });/* 正向排序 */
        // console.log(a); 
    </script>

</body>

</html>

相关文章

网友评论

      本文标题:js 根据数组对象里面的某个属性值进行从大到小,从小到大排序

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