JS 数组模糊搜索

function searchList(str, container) {
    var newList = [];
    //新的列表
    var startChar = str.charAt(0);
    //开始字符
    var strLen = str.length;
    //查找符串的长度


    for (var i = 0; i < container.length; i++) {
        var obj = container[i];
        var isMatch = false;
        for (var p in obj) {
            if (typeof (obj[p]) == "function") {
                obj[p]();
            } else {
                var curItem = "";
                if (obj[p] != null) {
                    curItem = obj[p];
                }
                for (var j = 0; j < curItem.length; j++) {
                    if (curItem.charAt(j) == startChar)
                    {
                        if (curItem.substring(j).substring(0, strLen) == str)
                        {
                            isMatch = true;
                            break;
                        }
                    }
                }
            }
        }
        if (isMatch) {
            newList.push(obj);
        }
    }
    return newList;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Vue3中,实现数组模糊查询有多种方法。其中一种方法是通过computed计算属性来实现。你可以在computed中定义一个名为filPerson的计算属性,使用filter方法对personLists数组进行过滤,返回符合条件的结果。具体代码如下: ```javascript computed: { filPerson() { const arr = this.personLists.filter((p) => { return p.name.indexOf(this.keyword) !== -1; }); return arr; } }, ``` 另一种方法是通过watch监听属性来实现模糊查询。你可以在watch中监听keyword属性的变化,在handler函数中使用filter方法对personLists数组进行过滤,并将结果赋值给personList。具体代码如下: ```javascript watch: { 'keyword': { immediate: true, handler(val) { this.personList = this.personLists.filter((p) => { return p.name.indexOf(val) !== -1; }); } } }, ``` 这两种方法都可以实现数组模糊查询,你可以根据自己的需求选择其中一种方法来使用。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [vue的数组 模糊查询与排序内容](https://blog.csdn.net/weixin_45180205/article/details/119777567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue实现模糊查询:filter()](https://blog.csdn.net/a1598452168YY/article/details/127958248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值