JS数组内元素的比较

2018-11-25  本文已影响0人  Nimanggi
/**
 * 数组内元素比较
 * @param __prop__ 比较的字段
 * @param __mode__ 从大到小还是从小到大
 */
Util.prototype.elementCompare = function (__prop__, __mode__) {

    return function (obj1, obj2) {

        var val1 = obj1[__prop__];
        var val2 = obj2[__prop__];

        if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
            val1 = Number(val1);
            val2 = Number(val2);
        }

        if (__mode__ == 'asc') {
            if (val1 < val2) {
                return -1;
            } else if (val1 > val2) {
                return 1;
            } else {
                return 0;
            }
        } else if (__mode__ == 'desc') {
            if (val1 < val2) {
                return 1;
            } else if (val1 > val2) {
                return -1;
            } else {
                return 0;
            }
        } else {
            // noting
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读