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

1. 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;
}
2. 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;
}
3. 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;
}
4. 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;
}