将文件行存储到数组的jQuery

将文件行存储到数组的jQuery,jquery,arrays,Jquery,Arrays,我有两个.txt文件,我正试图从中创建组合。我试着把每个文件都转换成一个数组,因为每个单词都由一个换行符分隔。问题是,当我运行$.get时,它不会将任何信息保存到数组中。这是我的密码: <html> <head> <title>Email Validator</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"><

我有两个.txt文件,我正试图从中创建组合。我试着把每个文件都转换成一个数组,因为每个单词都由一个换行符分隔。问题是,当我运行
$.get
时,它不会将任何信息保存到数组中。这是我的密码:

<html>
    <head>
        <title>Email Validator</title>
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    </head>
    <body>
        <span id="runtime"></span>
        <table class="results">
            <tr>
                <td>First Name</td>
                <td>Last Name</td>
            </tr>
        </table>
        <script>
            //pull firstnames and store to array
            var firstnames = new Array();
            $.get('first.txt', function(data){
                firstnames = data.split("\n");
            });

            //pull lastnames and store to array
            var lastnames = new Array();
            $.get('last.txt', function(data){
                lastnames = data.split("\n");
            });

            var fn, ln;
            //firstnames
            $.each(firstnames , function(findex, fvalue) {
                fn = fvalue;
                //lastnames
                $.each(lastnames , function(lindex, lvalue) {
                    ln = lvalue;
                    $("table.results").appendTo("<tr><td>" + fn + "</td><td>" + ln + "</td></tr>");
                });
            });
        </script>
    </body>
</html>

电子邮件验证程序
名字
姓
//提取名字并存储到数组中
var firstnames=新数组();
$.get('first.txt',函数(数据){
firstnames=data.split(“\n”);
});
//将lastnames和store拉入数组
var lastnames=新数组();
$.get('last.txt',函数(数据){
lastnames=data.split(“\n”);
});
var-fn,ln;
//名字
$.each(名字、函数(findex、fvalue){
fn=fv值;
//姓氏
$.each(姓氏、函数(lindex、左值){
ln=左值;
$(“table.results”).appendTo(“+fn+”+ln+”);
});
});
$.get()是一个AJAX调用,这意味着它是异步的。每当$.get完成时,data.split()行就会出现,而不一定在所拥有的每个块$.get之前

由于需要进行两次异步调用,因此可以尝试嵌入:

        //pull firstnames and store to array
        var firstnames = new Array();
        var lastnames = new Array();
        $.get('first.txt', function(data){
            firstnames = data.split("\n");

            //pull lastnames and store to array
            $.get('last.txt', function(data){
                  lastnames = data.split("\n");

                  // Process your two arrays here
             });    
        });

您的代码存在一些问题。 当您希望依赖多个ajax调用的结果时,可以使用
$。其中一种方法可以是:

$.when(first, last).then(successCallBackFn, failureCallBackFn);
第一个
最后一个
来自哪里?嗯,它们可能是调用$的结果。如下所示:

var first = $.get('first.txt', function(data){
                firstnames = data.split("\n");
            });
$.when(first, last).then(successCallBackFn, failureCallBackFn);

            function successCallBackFn(firstNames, lastNames) {
                var fn, ln;
                //firstnames
                $.each(firstnames, function (findex, fvalue) {
                    fn = fvalue;
                    //lastnames

                    $.each(lastnames, function (lindex, lvalue) {
                        ln = lvalue;
                        $("table.results").append("<tr><td>" + fn + "</td><td>" + ln + "</td></tr>");
                    });
                });
            }

            function failureCallBackFn() {
                console.log('failed');
            }
类似地,
last

var last = $.get('last.txt', function(data){
                lastnames = data.split("\n");
            });
最后,在如下情况下使用$:

var first = $.get('first.txt', function(data){
                firstnames = data.split("\n");
            });
$.when(first, last).then(successCallBackFn, failureCallBackFn);

            function successCallBackFn(firstNames, lastNames) {
                var fn, ln;
                //firstnames
                $.each(firstnames, function (findex, fvalue) {
                    fn = fvalue;
                    //lastnames

                    $.each(lastnames, function (lindex, lvalue) {
                        ln = lvalue;
                        $("table.results").append("<tr><td>" + fn + "</td><td>" + ln + "</td></tr>");
                    });
                });
            }

            function failureCallBackFn() {
                console.log('failed');
            }
$.when(第一个、最后一个)。然后(successCallBackFn、failureCallBackFn);
函数successCallBackFn(名字、姓氏){
var-fn,ln;
//名字
$.each(名字、函数(findex、fvalue){
fn=fv值;
//姓氏
$.each(姓氏、函数(lindex、左值){
ln=左值;
$(“table.results”).append(“+fn+”+ln+”);
});
});
}
函数failureCallBackFn(){
console.log('failed');
}
还有。请注意,您需要在
$(“table.results”)行中使用
append
而不是
appendTo
。append