Angbike个人博客 > JavaScript/JQuery > 使用JavaScript实现模糊查询的几种方法

使用JavaScript实现模糊查询的几种方法

indexof方法

/**
* 使用indexof方法实现模糊查询
* @param  {Array}  list     进行查询的数组
* @param  {String} keyWord  查询的关键词
* @return {Array}  arr      查询的结果
*/
function fuzzyQuery(list, keyWord){
    var arr = [];
    for(var i = 0; i < list.length; i++){
        if(list[i].indexOf(keyWord) >= 0){
            arr.push(list[i]);
        }
    }
    return arr;
}

split方法

/**
* 使用spilt方法实现模糊查询
* @param  {Array}  list     进行查询的数组
* @param  {String} keyWord  查询的关键词
* @return {Array}  arr      查询的结果
*/
function fuzzyQuery(list, keyWord){
    var arr = [];
    for(var i = 0; i < list.length; i++){
        if (list[i].split(keyWord).length > 1){
            arr.push(list[i]);
        }
    }
    return arr;
}

match 方法

/**
* 使用match方法实现模糊查询
* @param  {Array}  list     进行查询的数组
* @param  {String} keyWord  查询的关键词
* @return {Array}  arr      查询的结果
*/
function fuzzyQuery(list, keyWord){
    var arr = [];
    for(var i = 0; i < list.length; i++){
        if(list[i].match(keyWord) != null){
            arr.push(list[i]);
        }
    }
    return arr;
}

test方法

/**
* 使用test方法实现模糊查询
* @param  {Array}  list     原数组
* @param  {String} keyWord  查询的关键词
* @return {Array}  arr      查询的结果
*/
function fuzzyQuery(list, keyWord){
    var reg =  new RegExp(keyWord);
    var arr = [];
    for(var i = 0; i < list.length; i++){
        if(reg.test(list[i])){
            arr.push(list[i]);
        }
    }
    return arr;
}

博客评论已关闭