可以通过以下步骤实现:
以下是一个示例实现的JavaScript代码:
function buildNestedObjectsFromArray(array) {
const result = [];
for (const item of array) {
const keys = item.name.split('.');
let temp = {};
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
if (!temp[key]) {
temp[key] = {};
} else if (typeof temp[key] !== 'object') {
temp[key] = {};
}
if (i === keys.length - 1) {
temp[key] = item.value;
}
temp = temp[key];
}
result.push(temp);
}
return result;
}
// 示例用法
const array = [
{ name: 'a.b.c', value: 1 },
{ name: 'a.b.d', value: 2 },
{ name: 'a.e', value: 3 },
{ name: 'f', value: 4 }
];
const nestedObjects = buildNestedObjectsFromArray(array);
console.log(nestedObjects);
该代码将属性名称和值的数组转换为嵌套对象的数组。对于示例输入数组array
,输出结果为:
[
{ a: { b: { c: 1, d: 2 }, e: 3 }, f: 4 }
]
这个方法可以用于构建具有嵌套结构的配置对象、JSON数据的转换等场景。
领取专属 10元无门槛券
手把手带您无忧上云