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

如何按指定位置嵌入子串构建目标JavaScript字符串?

问题与解决方案

需求说明

现有两个字符串:

const string1 = '1111';
const string2 = '2222';

需要构造一个目标字符串,要求:

  • 前4个字符为空格
  • string1占据第5到第8位(对应索引4-7)
  • string2从第11位开始(对应索引10),中间用两个空格衔接
  • 预期输出:" 1111 2222"

原代码问题

你提供的代码存在以下问题:

  • 返回的是数组而非字符串,无法直接得到目标格式的文本
  • 数组中未赋值的位置会是空元素,转字符串时无法自动填充空格
  • 索引计算错误:string1应该从索引4开始才能保证前4位是空格,原代码从索引5开始会导致第5位(索引4)空缺

正确实现方式

方法一:直接字符串拼接(简单直观)

function StringExtract() {
    const string1 = '1111';
    const string2 = '2222';
    // 前4个空格 + string1 + 两个衔接空格 + string2
    return '    ' + string1 + '  ' + string2;
}
console.log(StringExtract()); // 输出 "    1111  2222"

方法二:数组填充后拼接(灵活适配动态长度)

如果需要更灵活地控制每个位置的内容,可以用数组初始化空格后再填充:

function StringExtract() {
    const string1 = '1111';
    const string2 = '2222';
    // 创建对应长度的数组,默认填充空格
    const resultArr = new Array(4 + string1.length + 2 + string2.length).fill(' ');
    
    // 填充string1到索引4-7的位置
    for (let i = 0; i < string1.length; i++) {
        resultArr[4 + i] = string1[i];
    }
    
    // 填充string2到索引10-13的位置
    for (let i = 0; i < string2.length; i++) {
        resultArr[10 + i] = string2[i];
    }
    
    // 数组转字符串返回
    return resultArr.join('');
}
console.log(StringExtract()); // 输出 "    1111  2222"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:32:44