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

在TypeScript中使用JavaScript .push()方法时出现重复添加元素问题

问题原因分析

你的代码输出三次"add"的原因很明确:

  • filter 方法会遍历数组的每一个元素,每次遍历到满足 word.length > 5 的元素时,就会执行一次 values.push("add")。
  • 你传入的 words 数组 ['apple', 'banana', 'cherry', 'da', 'elderberry'] 中,长度大于5的元素共有3个:banana(6个字符)、cherry(6个字符)、elderberry(10个字符)。
  • 每匹配到一个符合条件的元素,就会往values数组中添加一次"add",三次执行后就得到了[ 'add', 'add', 'add' ]的输出。

额外提一句:你用filter的方式并不规范——filter的回调函数需要返回布尔值来决定是否保留当前元素,但你的回调在word.length >5的分支里没有返回值(JS会默认返回undefined,被filter判定为false)。如果只是想遍历数组做操作,用forEach会更贴合需求。

内容的提问来源于stack exchange,提问作者Francis Gacheru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:00:54