求助:JavaScript makeAlternatingArray函数错误修复
修复makeAlternatingArray函数的循环逻辑问题
你的代码存在两个关键错误:
- 循环内直接返回单个元素:第一次循环就执行
return array[i],导致函数直接退出,只返回第一个符合条件的元素,无法收集所有交替元素组成数组。 - 循环变量递增写法错误:
i=+2是把i赋值为2,不是每次循环让i增加2,正确写法应为i += 2。
修复后的代码如下:
function makeAlternatingArray(array) { if (array.length <= 1) { return array; } // 创建空数组存储结果 const result = []; for (let i = 0; i < array.length; i += 2) { // 将符合条件的元素推入结果数组 result.push(array[i]); } // 返回完整的结果数组 return result; }
验证示例:
makeAlternatingArray(['hey', 'hi'])返回['hey'],符合预期makeAlternatingArray(['a', 'b', 'c', 'd', 'e'])返回['a', 'c', 'e'],符合预期
另外,也可以用数组filter方法更简洁实现,适合刚接触数组方法的学习者参考:
function makeAlternatingArray(array) { if (array.length <= 1) { return array; } // 筛选索引为偶数的元素(从0开始) return array.filter((_, index) => index % 2 === 0); }
内容的提问来源于stack exchange,提问作者beginnersM
相关产品推荐
相关产品推荐

