为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Angular 中填充 JSON 对象中的数组

无法在 Angular 中填充 JSON 对象中的数组

茅侃侃 2022-08-04 09:52:30
我有以下 JSON 对象:Object { JP: "JAPAN", PAK: "PAKISTAN", IND: "INDIA", AUS: "AUSTRALIA" }此 JSON 是从 get 返回的响应数据。call(HttpClient Angular)所以现在,我需要将其填充到以下内容中以显示为下拉列表。countryList: { countryCode: string; countryName :string }[];我尝试执行以下操作:for (const key in resData) {  if (resData.hasOwnProperty(key)) {     var obj ={       countryCode :key,       countryName : resData[key]      }    this.countryList.push(obj);  }}但是当我执行时,我得到这个错误"_this.countryList.push is not a function"我做错了什么?
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

您发布的代码仅定义了国家/地区列表的类型。您还需要将其初始化为空数组,然后才能推送到它 - 见下文。

countryList: { countryCode: string;countryName :string }[] = [];


查看完整回答
反对 回复 2022-08-04
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

您可以从对象获取,然后从对象数组中获取:entriesmap


Object.entries(countries).map(([key, value]) => ({

     countryCode: key,

     countryName: value

}))


查看完整回答
反对 回复 2022-08-04
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您需要将国家/地区列表声明为列表。


var resData={ JP: "JAPAN", PAK: "PAKISTAN", IND: "INDIA", AUS: "AUSTRALIA" };

countryList=[];

for (const key in resData) {

  if (resData.hasOwnProperty(key)) {

     var obj ={

       countryCode :key,

       countryName : resData[key]

      }

    countryList.push(obj);

  }

}

console.log(countryList)


查看完整回答
反对 回复 2022-08-04
  • 3 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信