二维数组对象的模糊搜索

需求:我要根据数组中的 orderNumbername 进行模糊搜索

数据结构

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)

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值