做前端项目时,经常会碰到后端的返回值类型不定
比如:有时返回 Number 的 1,有时返回 String 的 ‘1’
会导致类型检查严格时的 bug

方法

  /**
   *  将对象中 Number 类型的值,统一转为 String 类型
   *  用于解决后端返回值类型不统一的问题,前端统一用 String 处理逻辑
   *
   *  PS:newObj !== obj
   *
   *  @param { Object } obj - 对象
   *
   *  @return newObj
   **/
  var objNumValueToStr = function (obj) {
    var _result = _.cloneDeep(obj)
    var deepHandler = function (obj) {
      _.each(obj, function (val, key) {
        if (_.isObject(val)) {
          deepHandler(val)
        }
        else if (_.isNumber(val)) {
          obj[ key ] = String(val)
        }
      })
    }
    
    deepHandler(_result)
    
    return _result
  }