JavaScript数组空vs[]

JavaScript数组空vs[],javascript,arrays,null,Javascript,Arrays,Null,我正在用JavaScript编写一个函数: 读入JSON 如果value=null,则将null推送到数组 否则,将值推送到数组 例如,如果我一个接一个地阅读: M, L, XL, and null 返回的数组应为: [M, L, XL, null] 然而,每次我这样做,我都会得到: [M, L, XL, ""] 或者如果我只读入一个空值(因此根本没有M、L、XL等,只读入空值),那么我得到: [] 我不确定,但我认为这可能与JavaScript的工作方式有关。对于JavaScript

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

  • 读入JSON
  • 如果value=null,则将null推送到数组
  • 否则,将值推送到数组
  • 例如,如果我一个接一个地阅读:

    M, L, XL, and null 
    
    返回的数组应为:

    [M, L, XL, null]
    
    然而,每次我这样做,我都会得到:

    [M, L, XL, ""]
    
    或者如果我只读入一个空值(因此根本没有M、L、XL等,只读入空值),那么我得到:

    []
    
    我不确定,但我认为这可能与JavaScript的工作方式有关。对于JavaScript中的数组,null是否等于[]

    我真的需要在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);
    
    }
    

    你能把你读到的JSON包含进来吗?这个
    reverse()
    是怎么回事?你可能想用
    value
    而不是
    type1[index]
    null
    value的唯一错误值。code
    ?谢谢!Reverse()是在删除重复项后对数组进行排序(有更好的方法吗?),我将改为“value”!Null将是value.code中为数不多的可用值之一(其他值仅为普通字符串或数字,如M、L、1、2、3)。是否可以包含读入的JSON?此
    reverse()
    ?您可能希望使用
    value
    而不是
    type1[index]
    值的
    空值是否为
    值的唯一错误值。code
    ?谢谢!Reverse()是在删除重复项后对数组进行排序(有更好的方法吗?),我将改为“value”!Null将是value.code的少数可用值之一(其他值只是普通字符串或数字,如M、L、1、2、3)。