javascript - 如何从数组中获取所有单词的位置取决于包含

标签 javascript

我有下面的数组,我想在输入“ca”时获取所有三个值的位置,这样它会返回 1,2,3

const withoutAccent = ["xyz", "can", "cant", "cannot"]
let test = withoutAccent.indexOf(withoutAccent.includes("ca"));
console.log(test)

最佳答案

你可以使用reduce

  • 遍历数组
  • 检查str是否存在于当前元素中
  • 如果存在,则将当前索引添加到最终输出,否则不添加

let arr = ["xyz", "can", "cant", "cannot"]

let test = (str) => {
  return arr.reduce((op, inp, i) => {
    if (inp.includes(str)) {
      op.push(i)
    }
    return op
  }, [])
}

console.log(test('ca'))

旁注:-如果您想实现不区分大小写

inp.toLowerCase().includes(str.toLowerCase())

关于javascript - 如何从数组中获取所有单词的位置取决于包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57739867/

相关文章:

javascript - 检查具有特定类 jQuery 的 ul

javascript - 处理文档中的多个ID

javascript - Angular 1.4.5 : Uncaught Error: [$injector:modulerr] ngRoute

javascript - 如何解决将数组插入对象的问题?

javascript - 如何在 jQuery 中第二次单击时删除类

javascript - 通过ajax发送数组的问题

javascript - 每次点击后的确认模式。第一次有效,然后失败。 (模态上的模态)

JavaScript - 按名称设置对象键

javascript - RSS 提要内容溢出 div

javascript - 来自网站的桌面上的通知弹出窗口