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

JavaScript中如何比对数组和字符串查找相同元素并修复代码问题

原代码错误点

  • 语法错误:forEach方法的参数书写错误,多写了一个右括号,且函数体缺少闭合括号
  • 逻辑错误:forEach方法没有返回值,在其回调函数中return的内容无法被外层函数接收,也不会中断遍历
  • 设计问题:函数定义的keyword、strings参数没有被使用,反而在函数内部写死了比对字符串和目标数组,无法适配不同输入场景

修正后的代码

function findStringsInArrayByKeyword(keyword, strings) {
  const result = []
  strings.forEach(function(a) {
    if (a === keyword) {
      result.push(a)
    }
  })
  return result
}

// 调用示例
const mang = ['Javascript', 'PHP', 'Học PHP']
const chuoi = "PHP"
console.log(findStringsInArrayByKeyword(chuoi, mang)) // 输出 ['PHP']

更简洁的实现

直接使用JS数组内置的filter方法,该方法会返回所有满足判断条件的元素组成的新数组,完全符合需求:

function findStringsInArrayByKeyword(keyword, strings) {
  return strings.filter(item => item === keyword)
}

// 调用示例
const mang = ['Javascript', 'PHP', 'Học PHP']
const chuoi = "PHP"
console.log(findStringsInArrayByKeyword(chuoi, mang)) // 输出 ['PHP']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:54:07