如何在javascript中将值从一个对象分配到另一个对象
我正在尝试将下面的“details”对象中的值分配给“formFields”数组中的每个“model” 这是详细信息对象如何在javascript中将值从一个对象分配到另一个对象,javascript,ecmascript-6,ecmascript-2016,Javascript,Ecmascript 6,Ecmascript 2016,我正在尝试将下面的“details”对象中的值分配给“formFields”数组中的每个“model” 这是详细信息对象 const details = { criteriaName: "hello", criteriaType: "type a", description: "world" } 这是formFields数组 从上面的details对象中,我试图将每个键中的每个值分配给formFields数组中的每个模型 const formFields = [
const details = {
criteriaName: "hello",
criteriaType: "type a",
description: "world"
}
这是formFields数组
从上面的details对象中,我试图将每个键中的每个值分配给formFields数组中的每个模型
const formFields = [
{
"title": "Title 1",
"columns": 2,
"fields": {
"criteriaName": {
"type": "text",
"label": "Criteria Name",
"id": 'criteriaName',
"model": "",
"required": true,
"show": true,
"rules": [
v => !!v || 'Criteria Name is required',
]
},
"criteriaType": {
"type": "select",
"label": "Criteria type",
"id": "criteriaType",
"options": ['Dependent', 'Independent', 'Static'],
"model": "",
"required": true,
"rules": [
v => !!v || 'Criteria Type is required',
],
"show": true,
},
}
},
{
'title': "Title 2",
"columns": 1,
"fields": {
"description": {
"type": "description_notes",
"label": "Description",
"id": "description",
"required": false,
"model": '',
"show": true,
}
}
}
]
我怎样才能做到这一点
谢谢。欢迎来到Stack Overflow。下面的代码可能会满足您的要求。要解释所有的细节有点过分,但你可以在评论中询问并阅读一些文章
const详细信息={
criteriaName:'你好',
criteriaType:“类型a”,
描述:'世界',
};
const formFields=[
{
标题:“标题1”,
字段:{
标准名称:{
id:'标准名称',
型号:'',
},
标准类型:{
id:'标准类型',
型号:'',
},
},
},
{
标题:“标题2”,
字段:{
说明:{
id:'说明',
型号:'',
},
不存在:{
id:'不存在',
型号:'这不会被替换',
},
},
},
];
const result=formFields.map((formField)=>({
…formField,
字段:Object.entries(formField.fields)。减少(
(字段,[键,值]=>
详情[主要]
? {
…字段,
[key]:{…值,模型:详细信息[key]},
}
:字段,
formField.fields,
),
}));
控制台日志(结果)代码>
这将对原始数组进行更改。
您可以阅读有关forEach的更多信息
如果要创建带有更改的新阵列,可以使用:
let newFormFields = formFields.map((form) => {
if (form.fields.criteriaName) form.fields.criteriaName.model = details.criteriaName;
if (form.fields.criteriaType) form.fields.criteriaType.model = details.criteriaType;
if (form.fields.description) form.fields.description.model = details.description;
return form;
});
您可以阅读更多关于地图的信息发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试的内容,以便说明您遇到的具体障碍。有关更多信息,请参阅并使用。
let newFormFields = formFields.map((form) => {
if (form.fields.criteriaName) form.fields.criteriaName.model = details.criteriaName;
if (form.fields.criteriaType) form.fields.criteriaType.model = details.criteriaType;
if (form.fields.description) form.fields.description.model = details.description;
return form;
});