Удалить пустые свойства из JSON - PullRequest
1 голос
/ 11 марта 2019

Я хотел бы удалить все пустые (например, "a" = "") свойства JSON из раздела экземпляра внутри конверта. Я написал код, как показано ниже, но он не работает. Может ли кто-нибудь посоветовать мне, как сделать эту работу?

let doc = fn.doc(URI);

function cleanProp(doc) {
  for (var propName in doc) { 
    if (doc[propName] === null || doc[propName] === undefined || doc[propName] === "") {
      delete doc[propName];
    }
  }
}

cleanProp(doc);

1 Ответ

1 голос
/ 11 марта 2019

Попробуй это.надеюсь, что это поможет

ПРИМЕЧАНИЕ. Это работает только для заданных переменных, если вы ищете динамическое зацикливание, вы можете использовать рекурсивное зацикливание.

let doc =  {"envelope":{"headers":[], "triples":[], "instance":{"A":"22", "B":""} }};

function cleanProp(doc) {
  for (var propName in doc) { 
  	for(var d in doc[propName]){
    		if (!isEmpty(doc[propName][d]) || doc[propName][d].length != 0) {

         for (var f in doc[propName][d]){
         			if (doc[propName][d][f] === null || doc[propName][d][f] === undefined || doc[propName][d][f] === "") {
              delete doc[propName][d][f];
              }
         }
      }
    }
  }
}

cleanProp(doc);

console.log(doc);

function isEmpty(obj) {
    for(var key in obj) {
        if(obj.hasOwnProperty(key))
            return false;
    }
    return true;
}
...