javascript indexOf - 列表/数组中的完全匹配

use*_*774 -1 javascript arrays jquery list

我决定使用javascript indexOf来确定列表/数组中是否存在值.这对我有用,直到我意识到我需要在列表中找到完全匹配.

这是我的示例代码:

if (['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'].indexOf('fr') > -1) {
Run Code Online (Sandbox Code Playgroud)

上面的代码将'fr'匹配到fr-CA,这对我来说是一个问题,因为我必须与fr完全匹配并且与fr-CA不匹配.

我认为这将是直截了当的,但我搜索了SO和谷歌,并找不到完全匹配的答案.

CD.*_*D.. 11

多数民众赞成错了,你可以用indexOf:

arr.indexOf(searchElement[, fromIndex = 0])

indexOf与使用严格相等的searchElement元素进行比较Array(与===三重等于运算符使用的方法相同)

所以['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'].indexOf('fr')回报-1.

  • 我的天啊!你是对的。这就是为什么我每天只睡 2 小时就无法生存的一个典型例子。我是杜甫。 (2认同)

fil*_*lur 5

尝试这个:

var match = ['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'].filter(function(item){
    return item === 'eu';
});

console.log(match); // an array of matches, only one item in this case
Run Code Online (Sandbox Code Playgroud)

虽然你可以正常工作。也许你错过了别的东西?

http://jsfiddle.net/ydm7k6xm/