如何在javascript中将值从一个对象分配到另一个对象

如何在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 = [

我正在尝试将下面的“details”对象中的值分配给“formFields”数组中的每个“model”

这是详细信息对象

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;
});