import cavar_type from '../cavar_type'
/**
* 功能:模糊搜索
* @param {array} list - 目标对象
* @param {string|number} [keyword] - 目标key值
* @param {function} [task] - 如果需要解析的数组中成员是一组对象的话需要该条件解析 需要return该解析的条件<br/>可以接收两个参数<br/>1. arr接收一个数组<br/>2.i 经过循环的索引
* @returns {array} - 满足条件的新数组, 如果不满足条件也会返回一个空数组
*/
function fuzzy_search(
list,
keyword,
task = (arr, i) => {
return arr[i];
}
) {
if (cavar_type(list) === "array") {
var reg = new RegExp(keyword);
var arr = [];
for (var i = 0; i < list.length; i++) {
if (reg.test(task(list, i))) {
arr.push(list[i]);
}
}
return arr;
} else {
console.error(
new Error("fuzzy_search: " + "list" + " is not Array, you is sb")
);
return []
}
}
export default fuzzy_search;