首页 > 解决方案 > 打字稿Angular中的数组问题

问题描述

我正在编写一个 Angular 应用程序,我遇到了将 API 对象数据存储到字符串数组中的问题。

JSON 格式:

{
     "data1":{
     "data11":"data11d",
     "statename":"West Bengal"
     },
     "data2":{
         "data21":"data21d",
     "statename":"Assam"
     }
 }

我正在使用带有索引的“.values”通过代码提取第一个键 data1 的内部 statename 值,并将其存储在字符串数组中以使用代码索引 0

this.myObj=Object.values(this.apiJson)[0]; //Obj data is coming which is debugged and checked
this.myStringArray[0]=this.myObj["statename"];

但是该值没有进入数组但是当我使用另一种声明字符串数组的方式时它可以工作

this.myObj=Object.values(this.apiJson)[0]; //Obj data is coming which is debugged and checked
this.myStringArray=[this.myObj["statename"]];

输出应该是西孟加拉邦,它以第二种编码方式出现,但不是第一种。有什么我可能错过的东西。该代码是一个打字稿文件,名称为 dashboard.component.ts

但是第二种方式不能在循环中使用来制作一个大的字符串数组

无论如何,谢谢,因为这个社区帮助了我很多。请提及是否需要更多详细信息,我也会提供。

标签: javascriptarraysangulartypescripttypescript2.0

解决方案


我假设myStringArray是一个空数组,第一种方法不是如何将项目添加到数组中。这是您如何替换数组中已经存在的索引处的项目...如果您想在末尾添加一个项目,请执行以下操作:

this.myStringArray.push(this.myObj["statename"]);

如果你想将它添加到开始使用shift

this.myStringArray.shift(this.myObj["statename"]);

第二种方法有效,因为您只是在构建一个包含 1 个项目的新数组。


推荐阅读