Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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 如何在Typescript中复制数组并向复制的数组添加新字段_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 如何在Typescript中复制数组并向复制的数组添加新字段

Javascript 如何在Typescript中复制数组并向复制的数组添加新字段,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个人数组。person对象具有名称和年龄字段。我想复制person数组并向person对象数组添加一个新字段(国家)。country字段来自字符串数组。因此,新数组的object字段将包含name、age和country字段。这是我的扑克牌 编辑: 正如我们发现的,不需要第二个数组,但是应该将country字段添加到现有的persons-数组中。我们可以通过一个简单的for循环来实现这一点,在该循环中,我们将向persons数组中添加一个新属性country,并根据索引从countries

我有一个人数组。person对象具有名称和年龄字段。我想复制person数组并向person对象数组添加一个新字段(国家)。country字段来自字符串数组。因此,新数组的object字段将包含name、age和country字段。这是我的扑克牌

编辑:

正如我们发现的,不需要第二个数组,但是应该将country字段添加到现有的
persons
-数组中。我们可以通过一个简单的for循环来实现这一点,在该循环中,我们将向
persons
数组中添加一个新属性
country
,并根据索引从
countries
数组中添加相应的值:

for(let i=0;i<this.persons.length; i++) {
  this.persons[i].country = this.countries[i]
}
其结果如下:

[
  {
    "name": "Marvin",
    "age": 12,
    "country": "US"
  },
  {
    "name": "Carla",
    "age": 15,
    "country": "UK"
  }
]

数组中没有字段。你试过什么,到底有什么问题?我的错。对不起,我更新了我的问题。我想说的是一个person对象数组,其中该对象有一个名称和年龄字段。不过:代码在哪里?@ilovejavaAJ你在找什么?你是说你有一个对象数组吗?类似于
[{name:“jhon”,age:“18”},{name:“jerry”,age:“19”}]
你想把它改成
[{{name:“jhon”,age:“18”,gender:“male”},{name:“jerry”,age:“19”,gender:“female”}
我有一个问题是新人的变化会反映到原来的人身上吗?不,不会反映出来,因为这没有对原始数组的引用。最好的方法是什么?我是否需要将newPerson映射回person数组?您是否真的不希望有两个单独的数组,而只希望有一个带有国家设置的数组?如果是这样的话,你可以把country字段添加到你现有的数组中。是的,我不想创建一个新的数组。但我想在对象中添加一个新字段,据我所知,最好的做法是映射一个新数组并在每个对象中添加新字段。对于如何在不需要映射/复制新数组的情况下在对象中添加新字段,您有什么建议吗?
// local variable to increment in map to get corresponding value of index in 'countries' array
i: number = 0;

this.newPersons = this.persons.map(a => Object.assign({name:a.name, age:a.age,country:this.countries[this.i++]}));
[
  {
    "name": "Marvin",
    "age": 12,
    "country": "US"
  },
  {
    "name": "Carla",
    "age": 15,
    "country": "UK"
  }
]