在nativescript-angular2中没有键的情况下解析数组

时间:2018-09-28 11:15:41

标签: angular typescript nativescript

JsonStructure:

{
    "share": [ 
            {      
            "id": "1",
            "name": "Denver",

            "address": [
                "people"
            ],

            "iconUrl": ""            
        },
        {
            "id": "1",
            "name": "Cook",
            "address": [
                "people",
                "student"
            ],
            "iconUrl": ""
        }
       ]
      }

我想在Nativescript-angular2中解析地址数组。如果您看到地址数组,则其中没有对象。所以我不知道该怎么解析。

代码:

我在下面尝试过的代码:

  for (let i = 0; i < response.share.length; i++) {
     let myApp = new Share();
        myApp.address = share[i].address;
  }

2 个答案:

答案 0 :(得分:1)

尝试像这样解析您的JSON

for(s of response['share']){
   let add = s['address']; // address array of share obj
   add.forEach(address=>{console.log(address)}) // all addresses

答案 1 :(得分:0)

使用flat()方法

  

flat()方法使用所有子数组元素创建一个新数组   递归连接到指定深度。

 let d=  this.data.share.map((d)=>d.address);
 console.log(d.flat());

使用flatMap()

  

flatMap()方法首先使用映射函数映射每个元素,   然后将结果展平为新数组。与地图相同   后面跟一个深度为1的单位,但是flatMap通常非常有用,因为   将两者合并为一种方法会更有效。

this.data.share.flatMap((d)=>d.address)

RefforFlat:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat

RefForFlatMaphttps://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap

示例:https://stackblitz.com/edit/arrayfalt