You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含负数、零、空字符串与正数的数组排序:空字符串置末尾

数组排序:将空字符串置于末尾的实现

需求说明

给定包含负数、0、正数和空字符串的数组,需完成排序:数字按升序排列,所有空字符串''始终位于数组末尾。

原始数组

[-1, 2, '', -2, 0, 4, '', 1, 5, 0, -5, 7, 11, '', 3]

期望输出

[-5, -2, -1, 0, 0, 1, 2, 3, 4, 5, 7, 11, '', '', '']

解决方案(JavaScript)

利用数组的sort()方法,自定义比较逻辑:

  • 若其中一个元素是空字符串,调整排序优先级让空串后置
  • 若都是数字,按常规升序规则比较

代码实现:

const originalArr = [-1, 2, '', -2, 0, 4, '', 1, 5, 0, -5, 7, 11, '', 3];
const sortedArr = originalArr.sort((a, b) => {
  // 处理空字符串:空串优先级最低,排到后面
  if (a === '') return 1;
  if (b === '') return -1;
  // 数字按升序排列
  return a - b;
});

console.log(sortedArr);

逻辑解释

  1. 当a是空字符串时,返回1,表示a的排序位置在b之后
  2. 当b是空字符串时,返回-1,表示a的排序位置在b之前
  3. 两个元素都是数字时,通过a - b实现升序排序(返回负数则a在前,正数则b在前)

运行上述代码后,输出结果与期望完全一致。

内容的提问来源于stack exchange,提问作者StaticName

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:54:55