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

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

作者: 林键燃 | 来源:发表于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