Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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_Arrays_Angular_Typescript_Object - Fatal编程技术网

Javascript 将值数组映射到对象数组

Javascript 将值数组映射到对象数组,javascript,arrays,angular,typescript,object,Javascript,Arrays,Angular,Typescript,Object,因此,我遇到了一个问题,需要将名称数组映射到具有name属性的对象 以下代码有问题: this.planNames.map((name,index) => { this.tempdata[index].name = name; }), 下面是一个数组示例 tempdata: any = [ { name: 'Mix and match', title: 'Single-line plans for voice messaging

因此,我遇到了一个问题,需要将名称数组映射到具有name属性的对象

以下代码有问题:

this.planNames.map((name,index) => {
     this.tempdata[index].name = name;
        }),
下面是一个数组示例

tempdata: any = [
    {
      name: 'Mix and match',
      title: 'Single-line plans for voice messaging and data.',
      desc:
        'A great plan option for businesses that want each line on its own plan. These plans have no maximum line caps.',
    },
    {
      name: 'Flexible',
      title: 'Multi-line plans for when one size does not fit all.',
      desc:
        'A great plan option for up to 10 phones with different unlimited data needs',
    }

任何使用箭头函数的想法都会很好,因为我自己正在学习更多关于这些函数的知识

映射功能仅用于将数据替换为数组中的其他数据。
如果要更新其他阵列数据,应使用
for
循环:

const tempdata=[
{
名称:“混搭”,
标题:“语音信息和数据的单线计划”,
描述:
“对于希望每条线路都有自己的计划的企业来说,这是一个很好的计划选项。这些计划没有最大线路上限。”,
},
{
名称:'灵活',
标题:“当一种尺寸不适合所有尺寸时的多行计划。”,
描述:
“一个伟大的计划选项,最多可提供10部具有不同无限数据需求的手机”,
}
];
常量planNames=['a','b'];
for(设i=0;i返回一个新数组,其中包含通过回调函数传递的每个原始数组元素的结果。因此,您不需要事先创建临时数组-map函数的结果将包含您需要的内容

const newTempData=this.planNames.map((名称,索引)=>{
返回{…tempdata[i],name}
});
您通常不会在
.map
函数中变异数据。如果您有兴趣改变原始数据结构,
tempdata
,您应该只使用一个标准


地图功能中应该有一些更改

this.planNames.map((item,index) => {
   this.tempdata[index].name = item.name;
});
console.log(this.tempData)

什么是
planNames
,您想要的输出是什么?您问题中的
tempdata
是所需的输出还是输入?示例代码有效吗?看起来应该这样。但是,您应该使用
forEach
而不是
map
。输出是临时数据。问题是从名称数组映射到临时数据对象数组。使用计划名称数组更新tempdata.name属性的值。您也应该真正显示输入。现在的问题类似于问“我如何添加数字?示例输出:42”。非常感谢您的回答。感谢您所有的精彩回答。我刚刚熟悉JavaScript中的许多数组函数。
this.planNames.map((item,index) => {
   this.tempdata[index].name = item.name;
});
console.log(this.tempData)