做前端项目时,经常会碰到后端的返回值类型不定
比如:有时返回 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
}