求助:编写JS函数提取数组偶数位置元素并按指定格式输出
解决数组偶数位置元素提取与格式化输出问题
咱们一步一步来修正你的代码,先理清楚当前存在的核心问题:
- 你现在的循环只是收集了从1开始的位置编号,但根本没从输入数组里取出对应的元素;
- 没有生成题目要求的「元素1 x 元素2 x ...」格式的字符串;
- 完全没处理把结果插入到id为
result的DOM元素里的逻辑; - 另外要注意:题目示例的输出对应的是数组索引为偶数的元素(也就是从1开始数的奇数位置),可能你题目里的“偶数位置”是表述小失误,咱们以示例为准来处理。
下面是修正后的完整可运行代码:
function evenPosition(arr) { // 筛选出数组索引为偶数的元素(对应示例里的目标结果) const targetElements = arr.filter((item, index) => index % 2 === 0); // 把数组格式化为要求的"x"分隔字符串 const resultStr = targetElements.join(' x '); // 将结果写入到id为result的页面元素中 document.getElementById('result').textContent = resultStr; } // 调用测试 evenPosition([1, 2, 3, 4, 5, 6, 7, 8, 9]);
关键代码说明:
- 筛选目标元素:用
Array.filter()方法遍历数组,回调函数里的index是数组的索引(从0开始),当index % 2 === 0时保留该元素,这样就能得到示例需要的[1,3,5,7,9]; - 格式化输出字符串:用
Array.join(' x ')直接把数组元素拼接成符合要求的字符串,比手动循环拼接更简洁高效; - 写入DOM:通过
document.getElementById('result')拿到页面上的目标元素,用textContent设置它的文本内容,这样就能在页面上看到预期的结果了。
如果你的真实需求是找从1开始数的偶数位置元素(也就是示例里的2、4、6、8),只需要把筛选条件改成index % 2 !== 0就行:
const targetElements = arr.filter((item, index) => index % 2 !== 0);
内容的提问来源于stack exchange,提问作者VictoriaTodorova
相关产品推荐
相关产品推荐

