Converting an object to a string

后端 未结 30 2356
北荒
北荒 2020-11-22 03:29

How can I convert a JavaScript object into a string?

Example:

var o = {a:1, b:2}
console.log(o)
console.log(\'Item: \' + o)

Output:

30条回答
  •  庸人自扰
    2020-11-22 04:20

    I was looking for this, and wrote a deep recursive one with indentation :

    function objToString(obj, ndeep) {
      if(obj == null){ return String(obj); }
      switch(typeof obj){
        case "string": return '"'+obj+'"';
        case "function": return obj.name || obj.toString();
        case "object":
          var indent = Array(ndeep||1).join('\t'), isArray = Array.isArray(obj);
          return '{['[+isArray] + Object.keys(obj).map(function(key){
               return '\n\t' + indent + key + ': ' + objToString(obj[key], (ndeep||1)+1);
             }).join(',') + '\n' + indent + '}]'[+isArray];
        default: return obj.toString();
      }
    }
    

    Usage : objToString({ a: 1, b: { c: "test" } })

提交回复
热议问题