Конвертировать нуль в "" внутри функции - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть этот код, который работает очень хорошо, и я не хочу ничего менять, но добавляю новую функцию, которая мне нужна, но не знаю, как ...

Это код:

const Obj = {
    "0":"Masaccio, Sandro Botticelli, Leonardo da Vinci",
    "1":"Dali, Gaudí, Roberto Valconni",
};

const Obj3 = [];

var count = Obj[0].split('","').length;
var countOuter = Object.keys(Obj).length;

for( var i = 0; i < count; i++){
  
  var string = [];
  
  for( var j = 0; j < countOuter; j++){
    string.push(Obj[j].split('","')[i]);
  }
  
  Obj3[i] = string;
}

console.log(Obj3);

Поскольку я сказал, что код работает хорошо, мой вопрос заключается в том, как я могу добавить, когда в значениях Obj есть нулевое значение, когда преобразование строк просто меняет нуль на ""

Пример с нулевым значением:

    const Obj = {
        "0":"Masaccio, Sandro Botticelli, Leonardo da Vinci",
        "1":null,
    };

    const Obj3 = [];

    var count = Obj[0].split('","').length;
    var countOuter = Object.keys(Obj).length;

    for( var i = 0; i < count; i++){
      
      var string = [];
      
      for( var j = 0; j < countOuter; j++){
        string.push(Obj[j].split('","')[i]);
      }
      
      Obj3[i] = string;
    }

    console.log(Obj3);

Как видите, выдается ошибка из-за нуля.Мой желаемый результат должен быть таким:

  [
    "Masaccio, Sandro Botticelli, Leonardo da Vinci",
    ""
  ]

Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Я предлагаю вам использовать пакет NPM под названием is-empty , где вы можете проверить объект, например

const output = (empty(Obj[i]) === true ? "", Obj[i])

Помимо NULL, он также может проверить undefined, false и т. Д.

0 голосов
/ 23 сентября 2018

Вам просто нужно условно использовать значение или предоставить значение по умолчанию перед обработкой, например (Obj[i] || "")

const Obj = {
        "0":null,
        "1":null,
    };

    const Obj3 = [];

    var count = Obj[0]? Obj[0].split('","').length: 0;
    var countOuter = Object.keys(Obj).length;

    for( var i = 0; i < count; i++){
      
      var string = [];
      
      for( var j = 0; j < countOuter; j++){
        string.push((Obj[j] || "").split('","')[i]);
      }
      
      Obj3[i] = string;
    }

    console.log(Obj3);
...