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

数字数组按0分块排序 分隔符替换为空格或X的实现问题

数组分块排序功能实现

实现逻辑

  • 遍历数组过程中分别维护当前非0数字块、当前连续0的计数两个临时变量
  • 遇到非0元素时,先处理此前累计的连续0:单个0补空格,2个及以上连续0补X,再将非0元素存入当前数字块
  • 遇到0元素时,先处理此前累计的非0数字块:将数字块升序排序后转成字符串拼入结果,再将连续0计数+1
  • 遍历结束后,收尾处理剩余的未拼接的数字块和连续0计数,得到最终结果

补全后可运行代码

// 测试用输入数组
var myArray = [1,3,2,0,7,8,1,3,0,6,7,1] 
// var myArray = [2,1,0,0,3,4]  // 示例2输入可替换测试

let result = '';
let currentNumberBlock = [];
let zeroCount = 0;

for(let i = 0; i < myArray.length; i++){
    const current = myArray[i];
    if(current !== 0){
        // 先处理之前累计的0
        if(zeroCount > 0){
            result += zeroCount === 1 ? ' ' : 'X';
            zeroCount = 0;
        }
        currentNumberBlock.push(current);
    }else{
        // 先处理之前累计的数字块
        if(currentNumberBlock.length > 0){
            // 升序排序后拼接成字符串
            result += currentNumberBlock.sort((a,b) => a - b).join('');
            currentNumberBlock = [];
        }
        zeroCount++;
    }
}

// 遍历结束后处理剩余的内容
if(currentNumberBlock.length > 0){
    result += currentNumberBlock.sort((a,b) => a - b).join('');
}
if(zeroCount > 0){
    result += zeroCount === 1 ? ' ' : 'X';
}

console.log(result);

内容的提问来源于stack exchange,提问作者Yamid Ortiz Muñoz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:15:05