javascript indexOf - 列表/数组中的完全匹配
javascript indexOf - exact match in a list / array
我决定使用 javascript indexOf 来确定列表/数组中是否存在值。这对我有用,直到我意识到我需要在列表中找到完全匹配。
这是我的示例代码:
if (['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'].indexOf('fr') > -1) {
上面的代码将 fr 与 fr-CA "匹配",这对我来说是一个问题,因为我必须与 fr 完全匹配,而不是与 fr-CA 匹配。
我以为这很简单,但是我已经搜索了SO和Google,找不到获得完全匹配的答案。
这是
错误的,您可以使用indexOf
:
arr.indexOf(searchElement[, fromIndex = 0])
indexOf
使用 严格 将searchElement
与Array
元素进行比较 相等(与===
或三等运算符使用的方法相同)
所以['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'].indexOf('fr')
返回-1
.
试试这个:
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
虽然你可以工作正常。也许你错过了别的东西?
http://jsfiddle.net/ydm7k6xm/
您可以使用
some
方法。一旦找到第一个匹配项,它将停止搜索,如果没有匹配项,它将返回 false:
var arr = ['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'];
var match = arr.some(function(el) {
return el === 'zh-CN';
});
alert(match);
或者也可以使用正则表达式。例如:
var arr = ['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'];
var match = new RegExp('^' + arr.join('|') + '$').test('zh-CN');
alert(match);
当
比较数组值等于数组中的相同值时indexOf
。 则只有它返回 true,否则它总是返回 false
如果你想在数组值中搜索子字符串,请使用下面的函数。 它搜索数组中的子字符串并返回数组中的位置
function searchStringInArray (str, strArray) {
for (var j=0; j<strArray.length; j++) {
if (strArray[j].match(str)) return j;
}
return -1;
}
var res = searchStringInArray('fr',['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW']);
alert(res);
小提琴
相关文章:
- inArray,indexOf在二维数组中
- 为什么空数组上的 indexOf 不返回 -1
- 对象不支持在调用 indexOf 定义的数组时 IE8 中未定义的此属性或方法
- 使用Javascript在mongo中数组indexOf
- Javascript性能:如何在数组中循环并检查每个值比indexOf、search和match更快
- 数组表示形式内的字符串IndexOf
- javascript indexOf 无法检查数组中的相同数字
- JavaScript:Association/Object数组中的indexOf
- javascript数组indexOf中使用的regex
- 多维数组indexOf不工作js
- 哪个值是javascript数组.indexOf作为索引位置
- 对象值匹配数组indexOf中的任意值
- Javascript:什么查找更快:数组.indexOf vs对象哈希值
- 数组indexOf和过滤器实现的IE给其他问题
- JavaScript数组indexOf数组
- JavaScript数组indexOf()方法不工作
- 为什么IE7 javascript数组.indexOf不工作
- 怎么能数组.indexOf比Array.some更有效
- Javascript数组indexOf返回未定义的值
- Javascript数组indexOf by Key,Value问题