首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制JSON.Stringify

复制JSON.Stringify
EN

Stack Overflow用户
提问于 2014-07-18 01:17:11
回答 1查看 572关注 0票数 0

我有一个实际的问题,我需要在不实际使用JSON.stringify的情况下复制JSON.stringify。当你在函数中输入的是一个对象时,我在获取返回值时遇到了麻烦。例如,如果您插入

代码语言:javascript
复制
var obj = {a:1, b:2, c:3};
JSON.stringify (obj); // returns "{"a":1,"b":2,"c":3}"

也就是说,我尝试使用for in循环将属性设置为正在传递的对象的字符串值。我这样做只是为了一个对象容器,但是这个函数实际上应该可以处理你通过它传递的任何东西,并且它会对它进行JSON.stringify。

代码语言:javascript
复制
var stringifyJSON = function(obj) {
 var newObj = {};
 for (var prop in obj){
    newObj ={
    stringProp:obj[prop]
    };
}
 return newObj;
};

我想我已经关闭了数组部分。我很不擅长对象遍历。这里的结果是'Object {stringProp:3}‘。这是一个递归问题集中的练习问题,所以我认为他们不希望我使用循环。我只是想通过循环让它变得简单一点,然后我会尝试通过递归来复制它。

任何帮助都将不胜感激!

谢谢,B

EN

回答 1

Stack Overflow用户

发布于 2014-07-18 01:26:49

因为这是一个练习问题,所以我会试着给你指出正确的方向:

您需要在代码中使用一个循环,因为您需要递归地循环遍历对象中的每个属性。

至于递归部分,首先你需要定义你的“基本情况”。基于不应导致递归调用的输入的条件是什么?我给你一个很大的提示,当参数不是对象的时候。

对于您来说,棘手的部分是确定如何附加从递归调用中得到的字符串。

以下是一些基本的模板代码:

代码语言:javascript
复制
function myStringify( obj ) {

    if ( typeof obj !== 'object' ) {
        // base case
        return ""+obj;
    }

    var str = "";
    for ( var prop in obj ) {            
        if ( obj.hasOwnProperty( prop ) ) {
            // recursive calls and string formatting magic
         }
    }
    return str;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24809725

复制
相关文章

相似问题

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