在jquery中推送后数组未显示正确的值

Array not displaying proper value after push in jquery

本文关键字:显示 数组 jquery      更新时间:2024-05-22

在我的应用程序中,我想在验证后将一些元素推送到数组中。我只是比较两个字符串,如果它相同,那么我会把它推到数组中。如果我把这个字符串保存在var中并显示它的工作很好,但在数组中显示错误。如果我在文本框中键入a,它将显示所有以a开头的名称,对于Ab,它显示所有以a.开头的名称。

     $( document ).ready(function() {
     var vendornames =["Abac","Abrs","aspc","Asrp","betd","gtser","gdrt"]
     var list = new Array();
     $('#vendor-name').keyup(function(event){
        var $textValue = $(this).val();
        if ($textValue.length > 0) {
            jQuery.each(vendornames, function (i, val) {
                if (val.indexOf($textValue) === 0) {
                    list.push(val);
                  }
            });
        }
      alert(list)
    });

这里有一个代码,说明您正在努力实现的目标,不确定您是否在寻找不区分大小写的解决方案,但这将根据输入与数组值进行比较

    ;(function() {
     var vendornames =["Abac","Abrs","aspc","Asrp","betd","gtser","gdrt"],
         list = [],
         targetEle = "#vendor-name";
    $(targetEle).on("keyup", function(event){
     var $textValue = $(this).val();
        if($textValue.length >= 3){
            $.map( vendornames, function( n ) {
                        return n == $textValue ? list.push(n) : null;
                    }); 
            console.clear();
            console.table(list);
            }
    });     
})();