概要
从数组中根据key value生成 对应对象
reduce方法
原数组
[{
"id": "ReversOrder",
"span": 24,
"assemblyname": "",
"label": "Revers Order",
"value": "",
"hidelabels": true,
"classname": "",
"message": "brandMessage",
"disabled": false,
"placeholder": "Please select",
"category": 6,
"check": true,
"activecolor": "",
"inactivecolor": "",
"customParameters": "ReversOrder",
"formStatus": true
}]
目标
将数组中的每个对象转化为以 customParameters 的值作为键,value 的值作为值的对象
方法
function transformData(arr) {
return arr.reduce((result, item) => {
result[item.customParameters] = item.value;
return result;
}, {});
}
// 测试数据
const data = [{
"id": "ReversOrder",
"span": 24,
"assemblyname": "",
"label": "Revers Order",
"value": "",
"hidelabels": true,
"classname": "",
"message": "brandMessage",
"disabled": false,
"placeholder": "Please select",
"category": 6,
"check": true,
"activecolor": "",
"inactivecolor": "",
"customParameters": "ReversOrder",
"formStatus": true
}, {
"id": "AnotherOrder",
"span": 12,
"assemblyname": "",
"label": "Another Order",
"value": "someValue",
"hidelabels": true,
"classname": "",
"message": "anotherMessage",
"disabled": false,
"placeholder": "Please select",
"category": 5,
"check": true,
"activecolor": "",
"inactivecolor": "",
"customParameters": "AnotherOrder",
"formStatus": true
}];
// 执行转换
const result = transformData(data);
console.log(result);
结果输出
{
"ReversOrder": "",
"AnotherOrder": "someValue"
}
解释
reduce() 方法用于遍历数组,将每个对象的 customParameters 属性值作为新对象的键,value 属性值作为新对象的值。
result 是累积的对象,初始为空对象 {},在每次迭代中,都会将 item.customParameters 和 item.value 添加到 result 对象中。