在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
相关产品推荐
相关产品推荐

