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

求助:编写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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:52:59