在对象的对象数组中设置相同的键
Setting the same keys in an array of an object of objects
我正在尝试完成最初看起来很简单的任务,但事实证明这对我来说有点困难。我有一个对象从客户端发送到无服务器函数。它的长度可变,具体取决于表格中填写的字段。
例如 - 下面是我从客户那里收到的一个对象。在这种情况下,已经填写了 2 个表单字段组,我将其封装在一个数组中,以使其更易于使用。碰巧我需要这样来满足我的过程的最后一步,即通过 POST 请求将此数据从我的无服务器函数发送到 API 端点。
我需要将所有名为“itemInfo(x)”的对象更改为“属性”以满足 API 要求。我尝试了很多不同的解决方案都无济于事。
如果有人可以提供一些 help/insight,我将不胜感激!
[
{
itemInfo0: {
initial_repair_reason: 'POWER - NONE W/ ANY SOURCE',
serial_number: 'testserial123',
part_number: '1170-3441 (OxyGo NEXT Slim Backpack)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
},
itemInfo1: {
initial_repair_reason: 'REPLACE COLUMNS',
serial_number: '123',
part_number: '1170-3410 (OxyGo NEXT Carry Bag)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
}
]
我要把上面的变成:
inputs: [
{
**properties**: {
initial_repair_reason: 'POWER - NONE W/ ANY SOURCE',
serial_number: 'testserial123',
part_number: '1170-3441 (OxyGo NEXT Slim Backpack)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
},
{
**properties**: {
initial_repair_reason: 'REPLACE COLUMNS',
serial_number: '123',
part_number: '1170-3410 (OxyGo NEXT Carry Bag)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
}
]
遍历数组,然后遍历每个对象的 Object.values() 以使用 properties
键
创建新对象
const res = data.reduce((a,o) =>{
Object.values(o).forEach(v => a.push({properties: v}))
return a;
},[])
console.log(res)
.as-console-wrapper {max-height: 100%!important;top:0}
<script>
const data =[
{
itemInfo0: {
initial_repair_reason: 'POWER - NONE W/ ANY SOURCE',
serial_number: 'testserial123',
part_number: '1170-3441 (OxyGo NEXT Slim Backpack)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
},
itemInfo1: {
initial_repair_reason: 'REPLACE COLUMNS',
serial_number: '123',
part_number: '1170-3410 (OxyGo NEXT Carry Bag)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
}
]
</script>
这边?
const inputs = Object.values(data[0]).map(el => ({properties : el}))
演示:
const data =
[ { itemInfo0:
{ initial_repair_reason : 'POWER - NONE W/ ANY SOURCE'
, serial_number : 'testserial123'
, part_number : '1170-3441 (OxyGo NEXT Slim Backpack)'
, hs_pipeline : '8360749'
, hs_pipeline_stage : '8360750'
, hubspot_owner_id : '910901'
, subject : 'Repair Request'
}
, itemInfo1:
{ initial_repair_reason : 'REPLACE COLUMNS'
, serial_number : '123'
, part_number : '1170-3410 (OxyGo NEXT Carry Bag)'
, hs_pipeline : '8360749'
, hs_pipeline_stage : '8360750'
, hubspot_owner_id : '910901'
, subject : 'Repair Request'
}
}
]
const inputs = Object.values(data[0]).map(el => ({properties : el}))
console.log( inputs )
.as-console-wrapper {max-height: 100%!important;top:0}
我正在尝试完成最初看起来很简单的任务,但事实证明这对我来说有点困难。我有一个对象从客户端发送到无服务器函数。它的长度可变,具体取决于表格中填写的字段。
例如 - 下面是我从客户那里收到的一个对象。在这种情况下,已经填写了 2 个表单字段组,我将其封装在一个数组中,以使其更易于使用。碰巧我需要这样来满足我的过程的最后一步,即通过 POST 请求将此数据从我的无服务器函数发送到 API 端点。
我需要将所有名为“itemInfo(x)”的对象更改为“属性”以满足 API 要求。我尝试了很多不同的解决方案都无济于事。
如果有人可以提供一些 help/insight,我将不胜感激!
[
{
itemInfo0: {
initial_repair_reason: 'POWER - NONE W/ ANY SOURCE',
serial_number: 'testserial123',
part_number: '1170-3441 (OxyGo NEXT Slim Backpack)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
},
itemInfo1: {
initial_repair_reason: 'REPLACE COLUMNS',
serial_number: '123',
part_number: '1170-3410 (OxyGo NEXT Carry Bag)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
}
]
我要把上面的变成:
inputs: [
{
**properties**: {
initial_repair_reason: 'POWER - NONE W/ ANY SOURCE',
serial_number: 'testserial123',
part_number: '1170-3441 (OxyGo NEXT Slim Backpack)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
},
{
**properties**: {
initial_repair_reason: 'REPLACE COLUMNS',
serial_number: '123',
part_number: '1170-3410 (OxyGo NEXT Carry Bag)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
}
]
遍历数组,然后遍历每个对象的 Object.values() 以使用 properties
键
const res = data.reduce((a,o) =>{
Object.values(o).forEach(v => a.push({properties: v}))
return a;
},[])
console.log(res)
.as-console-wrapper {max-height: 100%!important;top:0}
<script>
const data =[
{
itemInfo0: {
initial_repair_reason: 'POWER - NONE W/ ANY SOURCE',
serial_number: 'testserial123',
part_number: '1170-3441 (OxyGo NEXT Slim Backpack)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
},
itemInfo1: {
initial_repair_reason: 'REPLACE COLUMNS',
serial_number: '123',
part_number: '1170-3410 (OxyGo NEXT Carry Bag)',
hs_pipeline: '8360749',
hs_pipeline_stage: '8360750',
hubspot_owner_id: '910901',
subject: 'Repair Request'
}
}
]
</script>
这边?
const inputs = Object.values(data[0]).map(el => ({properties : el}))
演示:
const data =
[ { itemInfo0:
{ initial_repair_reason : 'POWER - NONE W/ ANY SOURCE'
, serial_number : 'testserial123'
, part_number : '1170-3441 (OxyGo NEXT Slim Backpack)'
, hs_pipeline : '8360749'
, hs_pipeline_stage : '8360750'
, hubspot_owner_id : '910901'
, subject : 'Repair Request'
}
, itemInfo1:
{ initial_repair_reason : 'REPLACE COLUMNS'
, serial_number : '123'
, part_number : '1170-3410 (OxyGo NEXT Carry Bag)'
, hs_pipeline : '8360749'
, hs_pipeline_stage : '8360750'
, hubspot_owner_id : '910901'
, subject : 'Repair Request'
}
}
]
const inputs = Object.values(data[0]).map(el => ({properties : el}))
console.log( inputs )
.as-console-wrapper {max-height: 100%!important;top:0}