Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将具有嵌套数组的对象转换为大对象_Javascript_Arrays_Json_Javascript Objects - Fatal编程技术网

Javascript 将具有嵌套数组的对象转换为大对象

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

我需要一些帮助来正确准备我的对象以更新我的数据库

我从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', 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您完全正确,很抱歉我甚至没有尝试,我会尝试更新问题。我从没想过这是一个免费的编码服务。我只是想从更高级的程序员/开发人员那里得到一些帮助。