JavaScript Array null vs []

时间:2015-08-18 22:09:25

标签: javascript arrays null

我正在用JavaScript编写一个函数:

  1. 读入JSON
  2. 如果value = null,则将null推送到数组。
  3. 否则,将值推送到数组
  4. 例如,如果我一个接一个地读入:

    M, L, XL, and null 
    

    返回的数组应为:

    [M, L, XL, null]
    

    然而,每次我这样做,我都会得到:

    [M, L, XL, ""]
    

    或者,如果我只读取一个空值(所以根本没有M,L,XL等,只有null),那么我得到:

    []
    

    我不确定,但我认为这可能与JavaScript的工作原理有关。 JavaScript中的数组是否等效于[]?

    我真的需要在我的JSON中输出null,因为JSON将被另一个我无法控制的文件读取。

    当前功能:

    我不是特别擅长JavaScript,但我认为该函数应该完成工作(减去[] / null部分)。它似乎有点重复,特别是标志部分,但如果我直接在嵌套循环中推送它,过滤器似乎忽略/删除null。

    //Results will be stored here
    var type1EnumUnique = [];
    var type2EnumUnique = [];
    
    function extractCode() {
        var type1Enum = []; 
        var typeEnum = []; 
        //For uniqueFilter() below
        var type1NullFlag = false; 
        var type2NullFlag = false;
    
        $.each(type1, function (index, value) {
            if (value.code)
                type1Enum.push(value.code);
            else
                type1NullFlag = true;
    
                $.each(type1[index].type2, function (index, value) {
                    if (value.code)
                        typeEnum.push(value.code);
                    else
                        type2NullFlag = true;
                });
        });
    
    
        //Filter to make array unique
        type1EnumUnique = type1Enum.reverse().filter(uniqueFilter).reverse();
        type2EnumUnique = typeEnum.reverse().filter(uniqueFilter).reverse();
        function uniqueFilter(value, index, arr) {
            return arr.indexOf(value, index + 1) === -1;
        }
    
        //Appending "null" back to array (filter removes/ignores null)
        if (type1NullFlag === true)
            type1EnumUnique.unshift(null);
        if (type2NullFlag === true)
            type2EnumUnique.unshift(null);
    
    }
    

0 个答案:

没有答案