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

问题描述 投票:0回答:2

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

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])

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

如果adUnitMacro中存在关键字数组中的字符串,那么这些值是否会被推送到verticalOutput数组?

例如,如果adUnitMacro = 'newshomepagetechnology'

verticalOutput阵列将是['news', 'homepage', 'technology']

javascript arrays regex
2个回答
2
投票

尝试将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]);
  }
}

0
投票

var adUnitMacro = 'newshomepagetechnology'
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]);
  }
}

console.log(verticalOutput)
console.log(keywordArray[0])
© www.soinside.com 2019 - 2024. All rights reserved.