如何在for...of循环中替换数组元素并生成新数组
解决数组元素替换并通过for...of循环生成新数组的问题
直接上可运行的代码,完全符合你的要求:
const arr = [1, 2, "a", 4, 5]; const result = []; for(let elem of arr) { // 遇到字符串类型的元素(这里就是"a")就替换成3,否则直接用原元素 const pushItem = typeof elem === "string" ? 3 : elem; result.push(pushItem); } console.log(result); // 输出 [1, 2, 3, 4, 5] console.log(arr); // 原数组不变,输出 [1, 2, "a", 4, 5]
补充说明:
- 用
const声明原数组arr,从语法层面保证它不会被重新赋值,彻底避免修改原数组 - 遍历过程中操作的是每个元素的副本,不是原数组的元素本身,所以不会影响原数组
- 如果只想精准替换字符串"a"而不是所有字符串,可以把判断条件改成
elem === "a",这样更严谨:const pushItem = elem === "a" ? 3 : elem;
内容的提问来源于stack exchange,提问作者codingForCode
相关产品推荐
相关产品推荐

