Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Sorting - Fatal编程技术网

Javascript 从其他两个对象创建新的对象数组

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

我试图从另外两个对象(其中一个是数组)中的数据创建一个新的对象数组。 我拥有的第一个对象是一个简单的键:value-one,它包含一个记录值

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”值。