开发时经常遇到 排序问题, 比如
遇到 对数据进行 多条件排序
/** * 搜索表单 * @typedef {Object} Condition * @property {string} key 关键字 * @property {boolean} isAscending 是否升序 */ /** * 数组排序 (带条件类型) * @param arr 原数据 * @param {[Condition]} condition 条件列表 * @returns {[]} */ var fns = function (arr, condition) { /** * 开始排序 * @param {object} itemA 对比值A * @param {object} itemB 对比值B * @param {[Condition]} condition 条件列表 * @param {number} index 当前条件排序下标 * @returns {number} */ var sort = function (itemA, itemB, condition, index) { if (!condition[index]) return 0 const { key, isAscending = true } = condition[index] const a = itemA[key] const b = itemB[key] if (a === b) { return sort(itemA, itemB, condition, index + 1) } else { return isAscending ? a - b : b - a } } return arr.sort((a, b) => { return sort(a, b, condition, 0) }) }
来源:https://www.cnblogs.com/Djdong/p/11512597.html