不知道该取啥名字😥,需求是类似下面的
objArrs数组,转化为父级key.子级key的属性,对应非对象的value
var obj = {
name: 'xm',
del: {
hah: 'fda',
fdafda: 'fdas',
fa: {
xx: '嘻嘻',
dd: 'dafad'
}
}
}
var objArr = [obj, obj, obj, obj];
再把每个降低维度之后的对象,存储在原
index对应的下标的数组中
var tableTh = []; //装所有的拼接起来的key
var tableValue = []; //装所有的非对象value
objArr.forEach((obj, idx) => {
tableValue[idx] = {};
dealTableData(obj, idx);
});
function dealTableData(currentObj, currentIdx, parentKey) {
const currentKeys = Object.keys(currentObj);
currentKeys.length && currentKeys.forEach((key, idx) => {
const linkKey = parentKey ? `${parentKey}.${key}` : key;
if ('Object' == Object.prototype.toString.call(currentObj[key]).slice(8, -1)) {
dealTableData(currentObj[key], currentIdx, linkKey);
}
else {
!tableTh.includes(linkKey) && this.tableTh.push(linkKey);
tableValue[currentIdx][linkKey] = currentObj[key];
}
});
}
console.log('获取到的数据', tableTh, tableValue)
酱紫,就可以获取到简单的对象啦