美文网首页
对象数组通过对象的属性进行指定排序

对象数组通过对象的属性进行指定排序

作者: 林键燃 | 来源:发表于2018-10-25 17:56 被阅读11次

    思路

    使用数组的 sort() 方法,传入一个比较属性值的回调函数,实现数组升序或者降序排列。

    实现

    /*
    * @method
    * @param {Array}arr 需要处理的对象数组
    * @param {String}property 对象用来比较的属性
    * @param {String}{'asc', 'des'}(默认‘升序’, ‘降序’) sortord 排序方式 
    * @return {Array} _arr 排序后的对象数组
    * @desc 根据对象特定属性对对象数组进行指定排序
    **/
    
    const compareProp = (arr, property, sortord) => {
        if (sortord === 'asc' || sortord === undefined) {
            // 升序
            _arr = arr.sort((obj1, obj2) => obj1[property] - obj2[property])
        } else {
            // 降序
            _arr = arr.sort((obj1, obj2) => obj2[property] - obj1[property])
        }
        return _arr
    }
    
    let arr =  [{a:3},{a:0},{a:1}]
    console.log(compareProp(arr, "a"))
    /*
        [[object Object] {
          a: 0
        }, [object Object] {
          a: 1
        }, [object Object] {
          a: 3
        }]
    */
    console.log(compareProp(arr, 'a','des'))
    /*
        [[object Object] {
          a: 3
        }, [object Object] {
          a: 1
        }, [object Object] {
          a: 0
        }]
    */
    

    相关文章

      网友评论

          本文标题:对象数组通过对象的属性进行指定排序

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