逻辑非常简单,就是对对象key值判断是否是对象,是就放进新对象,然后循环递归,返回新的对象
function flatMyObject(data) {
var emptyObj = {} //定义空对象存值
function flatobj(data) {
for (var key in data) { //循环取值
if (Object.prototype.toString.call(data[key]) == '[object Object]') { //判断对象值
flatobj(data[key]) //取对象值
} else {
emptyObj[key] = data[key] //直接放进空对象
}
}
}
flatobj(data) //回调赋值进空对象
return emptyObj //返回扁平化后新的对象
}