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