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

JavaScript字符串处理验证求助:新手需完善代码完成指定任务

解决你的编程任务

先给你修正并简化后的代码,再一步步拆解逻辑:

新手友好版(数组操作)

var str = '011125228';
// 把字符串转成数组,方便删除指定位置的字符
var charArr = str.split('');
// 删除第一个字符(索引0)
charArr.splice(0, 1);
// 删完第一个后,原第六个字符的索引变成了4,删除它
charArr.splice(4, 1);
// 删除最后一个字符
charArr.pop();
// 转回字符串
var processed = charArr.join('');

// 计算前三位数字的和(字符转数字才能做加法)
var sumFirst = Number(processed[0]) + Number(processed[1]) + Number(processed[2]);
// 计算后三位数字的和
var sumLast = Number(processed[3]) + Number(processed[4]) + Number(processed[5]);

// 比较后输出结果
console.log(sumFirst === sumLast ? 'yes' : 'no');

精简版(字符串切片+求和函数)

var str = '011125228';
// 直接切片拼接得到处理后的字符串:跳过第一个、第六个、最后一个字符
var processed = str.slice(1, 5) + str.slice(6, -1);

// 封装求和函数,避免重复代码
function calculateSum(strSegment) {
  return strSegment.split('').reduce((total, digit) => total + Number(digit), 0);
}

// 分别计算前三位和后三位的和
var sumFirst = calculateSum(processed.slice(0, 3));
var sumLast = calculateSum(processed.slice(3));

// 输出结果
console.log(sumFirst === sumLast ? 'yes' : 'no');

你的初始代码问题说明

  • str.replace(/^.|.$/g ,'') 这步是对的,确实去掉了首尾字符,但接下来的s = y.replace(y[6])写法错误:
    1. replace需要两个参数,只传第一个的话,会把匹配到的内容替换成undefined,达不到删除效果。
    2. 逻辑有误:你要删除的是原字符串的第六个字符,但删完首尾后,原第六个字符的位置已经偏移,直接操作y[6]是错的。

关键逻辑拆解

  1. 删除指定字符:字符串是不可变的,用数组splice或者字符串slice拼接的方式,能精准删除目标位置的字符。
  2. 数字求和:字符串里的字符是文本类型,必须转成数字(用Number()或者*1)才能做加法运算。
  3. 结果判断:用三元运算符条件 ? 结果1 : 结果2可以简洁替代if-else输出yes或no。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:10:50