javascript - 正则表达式通配符和搜索数组

标签 javascript arrays regex

我正在尝试循环遍历一个数组并将其中的字符串与另一个字符串进行比较,然后将它们添加到新数组中。

var adUnitMacro = 'news'
var verticalOutput = []

keywordArray = ['news', 'homepage', 'technology', 'entertainment', 'sport',
  'business', 'lifestyle', 'travel', 'motoring', 'property'
]

for (i = 0; i < keywordArray.length; i++) {
  if (keywordArray[i] === adUnitMacro) {
    verticalOutput.push(keywordArray[i]);
  }
}

console.log(verticalOutput)
console.log(keywordArray[0])

在此示例中,“新闻”被添加到verticalOutput 数组中。但是,如果 adUnitMacro 变量为“123news123”,则不会向 VerticalOutput 数组添加任何内容,因为关键字数组中的“news”不完全匹配。

如果关键字数组中的字符串存在于 adUnitMacro 中,我该如何制作这些值将被插入verticalOutput 数组?

例如,如果adUnitMacro = 'newshomepagetechnology'

verticalOutput 数组将为 ['news', 'homepage', 'technology']

最佳答案

尝试将 keywordArray[i] === adUnitMacro 更改为 adUnitMacro.includes(keywordArray[i])

您的代码最终将如下所示:

var adUnitMacro = 'news'
var verticalOutput = []

keywordArray = ['news', 'homepage', 'technology', 'entertainment', 'sport',
  'business', 'lifestyle', 'travel', 'motoring', 'property'
]

for (i = 0; i < keywordArray.length; i++) {
  if (adUnitMacro.includes(keywordArray[i])) {
    verticalOutput.push(keywordArray[i]);
  }
}

关于javascript - 正则表达式通配符和搜索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47897161/

相关文章:

javascript - 如何向 requirejs r.js 优化器添加仅在构建期间运行的插件?

javascript - 如何从 Javascript 字典中获取特定键?

javascript - 在分页中使用图像作为上一个和下一个

冒泡与选择排序的 Java 执行运行时间

arrays - 空数组不为空

arrays - 使用 awk 解析文本文件的各个部分

regex - 如何从 VimOutliner 转换为 Markdown?

javascript - getJSON 存储在属性名称中的多个属性值的正确语法

javascript - 当用户在 Angular 中使用正则表达式仅输入 0 或 0.0 时如何显示错误消息?

java - 提取单引号中存在的字符串数据