{
a:{b:1,c:2},
d:3
}
想转换成
{
b:1,
c:2,
d:3
}
function flattenObj(obj, result) {
return Object.keys(obj).reduce((result, key) => {
// 非`null`对象递归
if(Object(obj[key]) === obj[key]) {
return flattenObj(obj[key], result);
}
result[key] = obj[key];
return result;
}, result || {})
}
// TEST
var a = {
a:{b:1,c:2},
d:3
};
flattenObj(a) // {b: 1, c: 2, d: 3}
function getResult (data, result = {}) {
for (let key in data) {
if (data[key] && typeof data[key] == 'object') {
getResult(data[key], result)
} else {
result[key] = data[key]
}
}
return result
}
function flatObject(target) {
const result = {};
for (let key in target) {
const value = target[key];
Object.assign(
result,
Object.prototype.toString.call(value) === '[object Object]'
? flatObject(value)
: { [key]: value }
);
}
return result;
}