Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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检查多个CSV列表_Javascript_Jquery_Jquery Csv - Fatal编程技术网

Javascript jQuery检查多个CSV列表

Javascript jQuery检查多个CSV列表,javascript,jquery,jquery-csv,Javascript,Jquery,Jquery Csv,为了简化我的问题,我重写了代码,没有解析CSV,而是使用了一个保存数据的变量 --代码编辑--- 该脚本对于一个源(var-source)运行良好,但我想在相同的文本字段中检查将生成不同警报的2个变量(source,source2) 脚本通过limesurvey表单运行,输入是一个简单的[type=“text”]字段 如何在同一文本字段中检查两个不同的文本数组 每当你发现自己在变量名上放置计数器来创建一个系列时,你需要停下来想想你在那里实际做了什么。使用计数变量名总是错误的 使用数组 var q

为了简化我的问题,我重写了代码,没有解析CSV,而是使用了一个保存数据的变量

--代码编辑---

该脚本对于一个源(var-source)运行良好,但我想在相同的文本字段中检查将生成不同警报的2个变量(source,source2)

脚本通过limesurvey表单运行,输入是一个简单的[type=“text”]字段


如何在同一文本字段中检查两个不同的文本数组

每当你发现自己在变量名上放置计数器来创建一个系列时,你需要停下来想想你在那里实际做了什么。使用计数变量名总是错误的

使用数组

var qID = 'xxx';

var source = [];
source.push(['text1', 'text2', 'etc']);
source.push(['text1', 'text2', 'etc44']);
source.push(['text15', 'text25', 'etc454']);

$('#question' + qID + ' input[type="text"]').change(function() {
    var valid = false;
    var inputVal = $(this).val();

    $.each(source, function(i, terms) {
        $.each(terms, function(i, term) {
            valid = inputVal === term;
            return !valid;  // returning false stops the .each() loop
        });
        return !valid;
    });

    if (valid) {
        alert("GOOD");
    } else {
        alert("NOT GOOD");
    }
});
表达上述嵌套循环的一种更吸引人的方法是使用
Array
的内置方法

var valid = source.some(function (terms) {
    return terms.includes(inputVal);
});
在ES6语法中,可以将其设置为一行:

var valid = source.some(terms => terms.includes(inputVal));

每当您发现自己将计数器放在变量名上以创建一个系列时,您需要停下来想想您在那里实际做了什么。使用计数变量名总是错误的

使用数组

var qID = 'xxx';

var source = [];
source.push(['text1', 'text2', 'etc']);
source.push(['text1', 'text2', 'etc44']);
source.push(['text15', 'text25', 'etc454']);

$('#question' + qID + ' input[type="text"]').change(function() {
    var valid = false;
    var inputVal = $(this).val();

    $.each(source, function(i, terms) {
        $.each(terms, function(i, term) {
            valid = inputVal === term;
            return !valid;  // returning false stops the .each() loop
        });
        return !valid;
    });

    if (valid) {
        alert("GOOD");
    } else {
        alert("NOT GOOD");
    }
});
表达上述嵌套循环的一种更吸引人的方法是使用
Array
的内置方法

var valid = source.some(function (terms) {
    return terms.includes(inputVal);
});
在ES6语法中,可以将其设置为一行:

var valid = source.some(terms => terms.includes(inputVal));

就我所见,变量fullArray是全局的,这可能是问题之一。您应该先放置一个变量,然后再将其定义为本地变量。我尝试了它,但仍然无法使其工作。。。我想我无法在同一个$(文档)下拥有2或3$.get(url、函数(数据)和各种url)?有什么想法吗?你可以在$(文档)中拥有你想要的所有$.get。就绪()。请提供加载另一个csv文件的代码,并添加有关问题的更多详细信息。出现错误了吗?发生了什么?我只是在相同的$(文档)下依次重复一个csv解析的代码。ready()重命名变量以获得唯一值。因此,var testArr=new Array();将成为var testArr2=new Array();美元.get(url,函数(数据)将变成美元.get(url2,函数(数据2)等等…请编辑您的帖子以添加信息。您没有显示其他$.get,也没有描述问题所在。什么意思它不起作用?据我所知,变量fullArray是全局的,这可能是问题之一。您应该在将其定义为局部之前放置一个变量。我尝试了它,但仍然无法使其起作用…我不认为我可以设法在同一个$(文档)下有2或3$.get(url、函数(数据)和不同的url)?有什么想法吗?你可以在$(文档).ready()中有你想要的所有$.get。请提供加载另一个csv文件的代码,并添加有关问题的更多详细信息。出现错误了吗?发生了什么?我只是在相同的$(文档)下依次重复一个csv解析的代码。ready()重命名变量以获得唯一值。因此,var testArr=new Array();将成为var testArr2=new Array();美元.get(url,函数(数据)将变成美元.get(url2,函数(数据2)等等…请编辑您的帖子以添加信息。您没有显示其他$.get,也没有描述问题所在。这是什么意思?这不起作用?非常感谢您的回答和发布此代码的时间。但是,我尝试完成的是运行if 3次,因为要检查source、source2和source3变量的有效性我编辑了上面的代码,以了解我的意思。对于一个变量,所有内容都按预期工作,但当我尝试在同一文本框中签入3个不同的数组进行验证时,验证代码并没有按预期工作。我没有收到任何错误,但结果不正确。@qwertyg-Hm…我的代码与您的。没有任何东西可以阻止您分别检查
source[0]
source[1]
source[2]
,并使用不同的警报进行验证。thnx再次尝试了您的代码,它可以正常工作,因为它只用于一次验证。我尝试了使用$.each代替$.each(源代码、函数(i、术语),只在源代码[0]中搜索:$.each(源代码[0],函数(i,terms),则该函数不起作用。如果我向源[0]发出警报,则每个函数中可能都有语法错误我看到显示了正确的数组。有什么问题吗?非常感谢您的回答和时间来发布此代码。但是,我试图完成的是运行3次if,因为source、source2和source3变量将分别进行验证并生成不同的警报。我编辑了上面的代码以了解我的意思。For一个变量,所有操作都按预期进行,但当我尝试在同一文本框中签入3个不同的数组以获取验证代码时,验证代码没有按预期进行。我没有收到任何错误,但结果不正确。@qwertyg Hm…我的代码与你的代码实际上没有什么不同。没有任何东西可以阻止你检查
源代码[0]
源代码[1]
source[2]
分别进行验证,并使用不同的警报。再次,我尝试了您的代码,它与一次验证一样工作正常。我尝试了而不是$.each(source,function(i,terms),仅在源[0]中搜索为:$。each(source[0],function(i,terms),那么它就不工作了。可能每个都有语法错误?如果我向源[0]发出警报,我会看到显示了正确的数组。有什么可能是错误的?