当前位置:网站首页>【对象数组的排序】

【对象数组的排序】

2022-07-05 09:27:00 果东布丁

/**
 * @desc 根据对象数组中的指定属性进行数组元素排序
 * @param objArr 要进行排序操作的对象数组
 * @param attribute 排序属性
 * @param orderFlag 方式标识,true 为正序 false 为倒序 默认为 true
 * @returns 完成排序后的数组
 */
export function objectArraySortByAtr(objArr, attribute,orderFlag=true) {
  function compare(key,sortFlag) {
    let sortFlagRes;
    if(sortFlag){
      sortFlagRes=1;
    } else{
      sortFlagRes = sortFlag?1:-1;
    }
    return function(value1, value2) {
      const val1 = value1[key];
      const val2 = value2[key];
      if(val1<val2){
        return sortFlagRes*-1;
      }
      if(val1>val2){
        return sortFlagRes*1;
      }
      return 0;
    };
  }
  return objArr.sort(compare(`${attribute}`,orderFlag));
}
原网站

版权声明
本文为[果东布丁]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_46252229/article/details/125456001