Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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中的数组_Javascript_Jquery - Fatal编程技术网

检查数组中的元素是否为javascript/jquery中的数组

检查数组中的元素是否为javascript/jquery中的数组,javascript,jquery,Javascript,Jquery,我有一个JSON,其中包含以下数据,当我在javascript中处理它时,我希望遍历每个元素,如果它为NULL,则删除它,如果它是一个数组,则我希望循环遍历子数组,并在其中找到任何NULL元素并删除它。我尝试了以下代码,但无法识别元素是否是数组中的数组 代码: for (var key in data) { if (!data[key]) { delete data[key];

我有一个JSON,其中包含以下数据,当我在javascript中处理它时,我希望遍历每个元素,如果它为NULL,则删除它,如果它是一个数组,则我希望循环遍历子数组,并在其中找到任何NULL元素并删除它。我尝试了以下代码,但无法识别元素是否是数组中的数组

代码:

            for (var key in data) {

                if (!data[key]) {
                    delete data[key];
                }else if(data.key && data.key.constructor === Array){
                       var subArray = data[key];
                       for(var subKey in subArray){
                          if (!data[key])
                            delete subArray[subKey];
                    }
                }

            }
{ 
    confirmDate : "2016-03-27T23:24:36.338Z",
    earliestPossibleInhandDate : "2016-03-28T23:24:36.338Z",
    eventStartTime : null,
    lastChanceDate : null,
    latestPossibleInhandDate : null,
    metas : Array[1],
    onSaleDate : "2016-03-28T23:24:41.461Z"
    primaryCategoryId : "114",
    secondaryGroupings : Array[2],
    status : "active"
}
JSON:

            for (var key in data) {

                if (!data[key]) {
                    delete data[key];
                }else if(data.key && data.key.constructor === Array){
                       var subArray = data[key];
                       for(var subKey in subArray){
                          if (!data[key])
                            delete subArray[subKey];
                    }
                }

            }
{ 
    confirmDate : "2016-03-27T23:24:36.338Z",
    earliestPossibleInhandDate : "2016-03-28T23:24:36.338Z",
    eventStartTime : null,
    lastChanceDate : null,
    latestPossibleInhandDate : null,
    metas : Array[1],
    onSaleDate : "2016-03-28T23:24:41.461Z"
    primaryCategoryId : "114",
    secondaryGroupings : Array[2],
    status : "active"
}
编辑:修改的JSON

{
    "secondaryGroupings": [{
        "groupingId": "720072",
        "status": "active"
    }, {
        "groupingId": null,
        "status": null
    }],
    "secondaryPerformers": [{
        "status": null
    }],
    "metas": [{}],
    "status": "active",
    "primaryCategoryId": "7667",
    "eventStartTime": null,
    "lastChanceDate": null,
    "onSaleDate": "2016-03-29T00:25:56.670Z",
    "confirmDate": "2016-03-28T00:25:56.670Z",
    "earliestPossibleInhandDate": "2016-03-29T00:25:56.670Z",
    "latestPossibleInhandDate": null
}

那是怎么回事?你试过验证它吗?我看不到任何逗号,数组语法错误。这只是一个示例JSON,我从chrome控制台复制了它:)如果你想在解析JSON方面得到任何真正的帮助,就必须给我们有效的JSON,只是说…我的内部数组将只有简单的值。如果我的内部数组中的所有元素都因为null而被删除,那么我想从主JSON对象中删除该内部数组本身。你能给出一个内部数组的示例吗?在我的问题的编辑部分提供了完整的JSON。在这里,我想从secondaryGroupings中删除一个带有null的条目,并删除secondaryPerformers本身,因为它拥有所有null条目,并删除已经为空的metas数组;
function deleteNulls(json) {
    for (var key in json) {  
        if (Array.isArray(json[key])) {
            json[key].forEach(function (Obj, index, Array) {
                for (var property in Obj) {
                    if (Obj[property] == null) {
                        Array.splice(index, 1);
                    }
                }
            });
        }
        if (json[key] == null || json[key].length == 0) {    
            delete json[key];
        } 
    } 
}

deleteNulls(myObject);