Javascript 将具有嵌套数组的对象转换为大对象
我需要一些帮助来正确准备我的对象以更新我的数据库 我从API获得的信息:Javascript 将具有嵌套数组的对象转换为大对象,javascript,arrays,json,javascript-objects,Javascript,Arrays,Json,Javascript Objects,我需要一些帮助来正确准备我的对象以更新我的数据库 我从API获得的信息: { currency: 'USD', product_id: '1', user_id: '123', service_id: '999', tech: 'javaScript', price: '50', details: [ { detail_type: 'hours_service', value: '5' }, { detail_type: 'workers', valu
{
currency: 'USD',
product_id: '1',
user_id: '123',
service_id: '999',
tech: 'javaScript',
price: '50',
details: [
{ detail_type: 'hours_service', value: '5' },
{ detail_type: 'workers', value: '2' },
{ detail_type: 'machines', value: '2' },
{ detail_type: 'instances', value: '1' },
{ detail_type: 'difficulty', value: '2' },
],
date_start: '2021-06-20',
date_stop: '2021-06-21',
}
更新数据库所需的内容:
{
currency: 'USD',
product_id: '1',
user_id: '123',
service_id: '999',
tech: 'javaScript',
price: '50',
hours_service: '5',
workers: '2',
machines: '2',
instances: '1',
difficulty: '2',
date_start: '2021-06-20',
date_stop: '2021-06-21',
}
我的尝试:
const api_data = {
currency: 'USD',
product_id: '1',
user_id: '123',
service_id: '999',
tech: 'javaScript',
price: '50',
details: [
{ detail_type: 'hours_service', value: '5' },
{ detail_type: 'workers', value: '2' },
{ detail_type: 'machines', value: '2' },
{ detail_type: 'instances', value: '1' },
{ detail_type: 'difficulty', value: '2' },
],
date_start: '2021-06-20',
date_stop: '2021-06-21',
}
for (let item of api_data.details) {
var arr = item
var result = {};
for (var i = 0, len = arr.length; i < len; i++) {
result[arr[i].key] = arr[i].value;
}
console.log(result);
}
const api\u数据={
货币:美元,
产品标识:“1”,
用户id:'123',
服务id:'999',
技术:“javaScript”,
价格:'50',
详情:[
{detail_type:'hours_service',值:'5'},
{detail_type:'workers',value:'2'},
{detail_type:'machines',value:'2'},
{detail_type:'instances',value:'1'},
{detail_type:'detailure',value:'2'},
],
开始日期:“2021-06-20”,
截止日期:“2021-06-21”,
}
用于(让api_数据项详细信息){
var arr=项目
var result={};
对于(变量i=0,len=arr.length;i
我的尝试给了我很多空的东西
如何在key:value对中进行第一个对象detail
数组变换,并使其成为一个包含所有数据的大对象
提前感谢,,
亲切问候您可以使用reduce来实现此目的
const apiData={
货币:美元,
产品标识:“1”,
用户id:'123',
服务id:'999',
技术:“javaScript”,
价格:'50',
详情:[
{detail_type:'hours_service',值:'5'},
{detail_type:'workers',value:'2'},
{detail_type:'machines',value:'2'},
{detail_type:'instances',value:'1'},
{detail_type:'detailure',value:'2'},
],
开始日期:“2021-06-20”,
截止日期:“2021-06-21”,
};
const{details,…rest}=apiData;
const transformedObj=details.reduce((结果,项)=>({…结果,[item.detail_type]:item.value}),{});
const result={…rest,…transformedObj};
控制台日志(结果)代码>请显示您的尝试。尝试循环详细信息
数组或类似的内容。如果您在某个特定步骤遇到困难,我们可以提供帮助。但这不是免费的编码服务,我们不应该为您开发解决方案。@JeremyThille您完全正确,很抱歉我甚至没有尝试,我会尝试更新问题。我从没想过这是一个免费的编码服务。我只是想从更高级的程序员/开发人员那里得到一些帮助。