Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组在推入jquery后未显示正确的值_Javascript_Jquery - Fatal编程技术网

Javascript 数组在推入jquery后未显示正确的值

Javascript 数组在推入jquery后未显示正确的值,javascript,jquery,Javascript,Jquery,在我的应用程序中,我想在验证后将一些元素推送到数组中。我只是比较两个字符串,如果它相同,那么我将把它推到一个数组中。若我将该字符串保存在var中并显示其工作状态,但在数组中显示错误。 如果我在文本框中键入a,它将显示所有以a开头的名称,对于Ab,它将显示所有以a开头的名称 $( document ).ready(function() { var vendornames =["Abac","Abrs","aspc","Asrp","betd","gtser","gdrt"]

在我的应用程序中,我想在验证后将一些元素推送到数组中。我只是比较两个字符串,如果它相同,那么我将把它推到一个数组中。若我将该字符串保存在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);
            }
    });     
})();

您应该阅读我在最新文章中的回答,数组是在回调函数中初始化的,而不是作用域的全局。您必须在回调开始时重置数组
list
,如
list=[]在进行
var$textValue=…
编码风格评论之前;要么在任何地方使用分号,要么不要。。。混合样式会分散阅读注意力。还需要使用相同的大小写比较两者,将两个值转换为小写或大写,因为
a
不匹配
a