Как преобразовать объект в строку без JSON.stringify с помощью JavaScript? - PullRequest
0 голосов
/ 30 сентября 2018

Обычно я бы так не делал, но для практического упражнения нужно преобразовать объект без с помощью JSON.stringify ().Объект для преобразования ниже:

obj = {
  num: 0,
  string: "string",
  func: function () {},
  emptyString: '',
  null: null,
  undefined: undefined
};

Он должен дать ответ ниже:

'{"num":0,"string":"This is a string","emptyString":"","null":null}'

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018
    var str = Object
    .entries(input)
    .reduce((a, e) => {
      if (typeof e[1] != "function" && e[1] !== undefined) {
        if(e[0] === "num" || e[0] === "null"){
          a += `"${e[0]}":${e[1]},`;
        } else{
        a += `"${e[0]}":"${e[1]}",`;
      }
      }
      return a;
    }, "`{")
    .slice(1, -1) + "}";
return str;

удалось получить это с помощью вышеизложенного ... хотя я уверен, что есть лучший ответ.Я узнал, что "polyfills" - это то, что мне нужно для поиска пользователя Bergi.

Спасибо всем, кто помог

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

Конечно, вы всегда захотите использовать JSON.Stringify(), но ради упражнений:

obj = {
  num: 0,
  string: "string",
  func: function () {},
  emptyString: '',
  null: null,
  undefined: undefined
};

str = Object
        .entries(obj)
        .reduce((a, e) => {
          if (typeof e[1] != "function") {
            a += `"${e[0]}" : "${e[1]}", `;
          }
          return a;
        }, "`{")
        .slice(1, -2) + "}`";

console.log(str)
...