在数组中找到确切的数字匹配?

时间:2014-08-22 13:13:37

标签: javascript

checkArray是:[10项a,11项b,25项c]

现在我有一个数字说25,我想检查是否在数组中然后返回该数组 有效,但如果我测试1,它匹配10项。

所以我需要测试全数匹配吗?或者解析数组字符串直到空格然后测试完全匹配???

for (var i=0; i < checkArray.length; i++) {

    var regexp = item;

    if ( checkArray[i].match(regexp)) {   
        return checkArray[i];
    }

    return false;
}

2 个答案:

答案 0 :(得分:1)

如果数组中字符串的格式是严格的,并且它始终以数字后跟空格开头,那么相应地设置你的正则表达式:

var checkArray =  ["10 item a", "11 item b", "25 item c"];
var item = 10;    
var regexp = '^' + item + '\ ';

for (var i=0; i < checkArray.length; i++) {        
    if ( checkArray[i].match(regexp)) {   
        return checkArray[i];
    }    
}

答案 1 :(得分:0)

假设您的数组包含始终格式相同且可以使用ECMA5的字符串(虽然垫片可用),那么您可以这样做。

的Javascript

function hasElementStarting(array, number) {
    var val = false;

    array.some(function (element) {
        if(element.split(' ').shift() === number.toString()) {
            val = element;
        }

        return val;
    });

    return val;
}

var checkArray = ["10 item a", "11 item b", "25 item c"],
    item = 10;

console.log(hasElementStarting(checkArray, item));

jsFiddle