Javascript 从其他两个对象创建新的对象数组
我试图从另外两个对象(其中一个是数组)中的数据创建一个新的对象数组。 我拥有的第一个对象是一个简单的键:value-one,它包含一个记录值Javascript 从其他两个对象创建新的对象数组,javascript,sorting,Javascript,Sorting,我试图从另外两个对象(其中一个是数组)中的数据创建一个新的对象数组。 我拥有的第一个对象是一个简单的键:value-one,它包含一个记录值 const records = { title: 'My title', body: 'bla bla bla', created_at: 'some date' }; 第二个是一个对象数组,其中包含类型和必填字段等字段属性 const fields = [ { name: 'title', type: 'TextFiel
const records = {
title: 'My title',
body: 'bla bla bla',
created_at: 'some date'
};
第二个是一个对象数组,其中包含类型和必填字段等字段属性
const fields = [
{
name: 'title',
type: 'TextField',
mandatory: true
},
{
name: 'body',
type: 'RichTextField',
mandatory: false
},
{
name: 'created_at',
type: 'DateField',
mandatory: true
}
];
我试图搜索第一个对象上的每个键,并获取第二个数组中的其他属性。基本上我想要这样的东西:
const newArray= [
{ name: title, value: 'My title', type: 'TextField', mandatory: true },
{ name: body, value: 'bla bla bla', type: 'RichTextField', mandatory: false },
{ name: created_at, value: 'some date', type: 'DateField', mandatory: true }
];
您可以使用
记录
中的值
映射字段
const
记录={title:'My title',body:'bla bla bla',创建时间:'some date'},
fields=[{name:'title',type:'TextField',mandatory:true},{name:'body',type:'RichTextField',mandatory:false},{name:'created_at',type:'DateField',mandatory:true}];
结果=fields.map(o=>Object.assign({},o,{value:records[o.name]}));
控制台日志(结果)代码>尝试使用javascript方法。这不仅仅是唯一的办法。您也可以尝试其他操作符。
const fields=[{name:'title',type:'TextField',必填项:true},
{name:'body',type:'RichTextField',必填项:false},
{name:'created_at',type:'DateField',必填项:true}
];
常量记录={
标题:“我的标题”,
身体:'呜呜呜呜',
创建于:“某个日期”
};
设newArray=[];
fields.forEach(字段=>{
newArray.push({
名称:field.name,
值:记录[field.name],
类型:field.type,
必填项:字段。必填项
})
})
log(newArray)代码>请尝试以下操作:
const fields=[{name:'title',type:'TextField',必填项:true},
{name:'body',type:'RichTextField',必填项:false},
{name:'created_at',type:'DateField',必填项:true}
];
常量记录={
标题:“我的标题”,
身体:'呜呜呜呜',
创建于:“某个日期”
};
设res=fields.map(val=>{
返回{…val,值:记录[val.name]}
})
控制台日志(res)代码>什么不起作用?请添加您的代码。我不知道如何启动它。我正在尝试使用.map和.reduce,但不使用luckitrate覆盖字段
,检查记录
是否具有与名称
的值匹配的属性,并将其内容作为值
存储在当前“field”对象中,类似这样的情况fields.map(f=>({…f,value:records[f.name]}))
map函数可能是最容易实现的。有一个提示:要从{key:value}对象中获取值,可以使用以下符号:记录[“title”]
->->这将为您提供一个“我的title”值。