需求:我要根据数组中的
orderNumber
和name
进行模糊搜索
数据结构
let orderList = [
{
orderNumber: '10086',
time: '2022.06.08 16:23',
priceTotal: '4.8',
list: [
{
name: '可口可乐',
number: 2
},
{
name: '怡宝',
number: 1
},
]
},
{
orderNumber: '10986',
time: '2022.06.08 16:23',
priceTotal: '5.8',
list: [
{
name: '雪碧',
number: 2
},
{
name: '怡宝',
number: 1
},
]
},
]
实现的方法
let value = '10086'; //搜索的关键字
let type = ["orderNumber","name"] //搜索数组中的字段名,如: orderNumber(一维数组要搜索的字段名) name(二维数组要搜索的字段名)
let list = 'list' // 二维数组的字段
function filterList(List, value, list, type) {
let s = List.filter((item, index, arr) =>{
if (item[type[0]].indexOf(value) >= 0) {
return item;
}
for (let j = 0; j < item[list].length; j++) {
if (item[list][j][type[1]] != undefined || item[list][j][type[1]] != null) {
if (item[list][j][type[1]].indexOf(value) >= 0) {
return item;
}
}
}
});
return s;
}
let search = filterList(orderList, value, list, type)