如何从循环val创建数组?

时间:2017-07-28 01:44:48

标签: jquery arrays

我有一段代码,用于比较一个名为#notes的可信div中的所有文本,该文件来自一个名为dictionary.txt的文本文档。

它遍历来自#notes的所有拆分文本,称为splitCntEditableTxt,并检查它是否匹配。如果匹配,则会创建一个带有匹配值的新跨度。

现在,我想通过使用循环中所有匹配的val来创建一个新数组。那么从循环中创建该数组的任何想法?这是部分代码。再次感谢〜!!!

$('#lattePool').load('dictionary.txt', function(){
    var text = $("#lattePool").text().toUpperCase();
    var words = text.split("\n");
    var dictionary = new Array();
    for(var i=0; i < words.length; i++) {
        dictionary[i] = words[i];
    };

    var contentEditableTxt = $("#notes").text();
    var splitCntEditableTxt = contentEditableTxt.replace(/([.,-=/])/g," ").split(" ");

    //alert(splitCntEditableTxt); //DEBUG

    $.each(splitCntEditableTxt,function(key,val){
        var nameFound = $.inArray(val.trim().toUpperCase(), dictionary);
        if (nameFound === -1){
        } else {
            $("#notes").append('<span class="matchedWord">'+val+'</span>');
        }
    });
});

2 个答案:

答案 0 :(得分:0)

$.each之外初始化一个数组,然后在循环中附加到该数组。这是范围问题比什么都重要。

如果你不知道如何做我建议的事情,请告诉我,但如果你自己解决这个问题,你将会学到更多。

答案 1 :(得分:0)

  1. 在上述代码之前声明一个空数组
    var vals_array = [];
  2. 每次在该数组中找到'val'时。将此else语句更改为:

    else {
        $("#notes").append('<span class="matchedWord">'+val+'</span>');
        vals_array.push(val);
    }

  3. P.S。:节省一些空间并将if-else语句更改为:

    if (nameFound !== -1){
        $("#notes").append('<span class="matchedWord">'+val+'</span>');
        vals_array.push(val);
    }