首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用JavaScript在没有JSON.stringify的情况下将object转换为string?

如何使用JavaScript在没有JSON.stringify的情况下将object转换为string?
EN

Stack Overflow用户
提问于 2018-09-30 05:26:27
回答 2查看 5.4K关注 0票数 1

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

代码语言:javascript
复制
obj = {
  num: 0,
  string: "string",
  func: function () {},
  emptyString: '',
  null: null,
  undefined: undefined
};

它应该会产生以下答案:

代码语言:javascript
复制
'{"num":0,"string":"This is a string","emptyString":"","null":null}'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-30 05:42:06

当然,您总是希望使用JSON.Stringify(),但出于练习的目的:

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2018-09-30 06:06:44

代码语言:javascript
复制
    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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52572690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档