js实现stringify函数

280 阅读1分钟

JSON.stringify()  方法是将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性。

JSON.stringify(value[, replacer [, space]])

这里为了方便,暂不考虑replacerspace参数,只考虑第一个参数value

function stringify(value) {
      if (Array.isArray(value)) {
        let str = '['
        for (var i = 0; i < value.length; i++) {
          str += stringify(value[i]) + ','     //递归
        }
        str = str.slice(0, -1)
        str += ']'
        return str
      }

      if (typeof (value) == 'object') {
        let str = '{'
        for (var k in value) {
          str += '"' + k + '":' + stringify(value[k]) + ','   //递归
        }
        str = str.slice(0, -1)
        str += '}'
        return str
      }

      if (typeof value == 'number') {
        return String(value)
      }

      if (typeof value == 'string') {
        return '"' + value + '"'
      }

      if (typeof value == 'boolean') {
        if (value) {
          return 'true'
        }
        else {
          return 'false'
        }
      }
    }