首页 > 解决方案 > 如何在没有 JSON.stringify 的情况下使用 JavaScript 将对象转换为字符串?

问题描述

我通常不会这样做,但它是在使用 JSON.stringify() 的情况下转换对象的练习。要转换的对象如下:

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

它应该产生以下答案:

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

标签: javascriptjsonobjecttostring

解决方案


当然你总是想使用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)

推荐阅读