JS技术问题:替换bits数组索引0中首个0为9,控制台返回9
解决方案
嘿,我来帮你搞定这个问题!
首先得明确:JavaScript里的字符串是不可变的,而且并没有原生的replaceAt方法,所以直接修改字符串某个位置的思路走不通。要实现替换bits数组索引0元素里的第一个'0',并让控制台最终返回'9',你可以把第三行代码替换成这段:
bits[0] = bits[0].replace('0', '9');
为什么这段代码能生效?
- 第一步:
bits[0]获取到数组里第一个位置的字符串元素 - 第二步:
replace('0', '9')会自动匹配这个字符串里第一个出现的'0',将其替换为'9',并返回一个全新的字符串(因为原字符串不能被直接修改) - 第三步:把这个新生成的字符串重新赋值给
bits[0],这样数组里的元素就被更新了
如果你的场景是要确保替换的是字符串的第一个字符(刚好这个字符是'0'),也可以用字符串拼接的方式实现,效果一样:
bits[0] = '9' + bits[0].slice(1);
不管用哪种方式,更新后的bits[0]第一个字符都会变成'9',此时如果控制台输出这个字符(比如console.log(bits[0][0])),就会得到你想要的结果。
内容的提问来源于stack exchange,提问作者Ghoyos
相关产品推荐
相关产品推荐

