JavaScript如何将服装尺码数组按实际尺寸规则排序
尺码按现实规则排序实现方案
实现思路
预设所有常规尺码的排序权重,数值越小代表排序越靠前,sort比较函数直接通过两个尺码的权重差值决定排序顺序,天然支持部分尺码缺失的场景,不需要额外做存在性判断。
完整代码实现
// 定义尺码权重映射 const sizePriority = { xs: 1, s: 2, m: 3, l: 4, xl: 5, xxl: 6 } // 执行排序 const rawSizes = ["s", "m", "l", "xl", "xxl", "xs"] const sortedSizes = rawSizes.sort((a, b) => sizePriority[a] - sizePriority[b])
效果验证
- 完整尺码数组排序结果为
["xs","s", "m", "l", "xl", "xxl"],符合预期要求 - 缺失m码的数组
["s", "l", "xl", "xxl", "xs"]排序结果为["xs","s", "l", "xl", "xxl"],相对顺序保持正确
鲁棒性优化
如果接口可能返回未定义的异常尺码,可以添加兜底权重避免排序异常:
const sortedSizes = rawSizes.sort((a, b) => { // 异常尺码默认权重设为99,统一排在列表最后 const weightA = sizePriority[a] ?? 99 const weightB = sizePriority[b] ?? 99 return weightA - weightB })
内容的提问来源于stack exchange,提问作者Mohammad Fahad
相关产品推荐
相关产品推荐

