Javascript 如何使用返回对象数组的typescript Angular5遍历JSON对象

Javascript 如何使用返回对象数组的typescript Angular5遍历JSON对象,javascript,json,angular,Javascript,Json,Angular,这是我的json代码,它返回一个数组“Customers”,其中包含对象和对象内的数组 这是我的json代码: { "Customers": [ { "customerData": { "secondLastName": "Apale", "firstLastName": "Lara", "phoneNumber": "2711292033", "address": "Calle X avenida Y #1

这是我的json代码,它返回一个数组“Customers”,其中包含对象和对象内的数组

这是我的json代码:

{
  "Customers": [
    {
      "customerData": {
        "secondLastName": "Apale",
        "firstLastName": "Lara",
        "phoneNumber": "2711292033",
        "address": "Calle X avenida Y #100",
        "paymentCapacity": 18000,
        "gender": "Femenino",
        "name": "Yessica",
      },
      "orders": [
        {
          "amount": 34371,
          "term": "2017-07-21T17:32:28Z",
          "payment": 1423,
          "id": 12345678,
          "calculationDate": "2017-07-21T17:32:28Z",
          "products": [
            {
              "SKUNumber": 28005417,
              "quantity": 1,
              "SKULineDescription": "Computadoras",
              "SKUDescription": "Laptop HP",
              "SKULineId": 4
            }
          ]
        }
      ]
    },
    {
      "customerData": {
        "secondLastName": "González",
        "firstLastName": "Pineda",
        "phoneNumber": "55678420",
        "address": "Calle 26 #4732 Col. Pradera",
        "paymentCapacity": 180,
        "gender": "Femenino",
        "name": "María",
      },
      "orders": [
        {
          "amount": 34371,
          "term": "2017-07-21T17:32:28Z",
          "payment": 1423,
          "id": 12678422,
          "calculationDate": "2017-07-21T17:32:28Z",
          "products": [
            {
              "SKUNumber": 28005417,
              "quantity": 1,
              "SKULineDescription": "Computadoras",
              "SKUDescription": "Laptop HP",
              "SKULineId": 4
            }
          ]
        }
      ]
    }
  ]
}
这是my array的声明:arrcusters=new array(); 我试着用foreach循环json,但我有一个错误:未定义,这是我的控制台

我猜您在访问数组元素和对象时遇到了问题。如果是这样的话,这可能会对你有所帮助

另外,运行那些被注释的代码段

您可以通过两种方式访问对象属性,一种是使用点(.)运算符,另一种是在示例中使用的

var数组={
“客户”:[
{
“客户数据”:{
“secondLastName”:“Apale”,
“firstLastName”:“Lara”,
“电话号码”:“2711292033”,
“地址”:“Calle X avenida Y#100”,
“支付能力”:18000,
“性别”:“女性”,
“名称”:“Yessica”,
},
“命令”:[
{
“金额”:34371,
“期限”:“2017-07-21T17:32:28Z”,
“付款”:1423,
“id”:12345678,
“计算日期”:“2017-07-21T17:32:28Z”,
“产品”:[
{
“SKU编号”:28005417,
“数量”:1,
“SKULineDescription”:“Computadoras”,
“SKU说明”:“笔记本电脑HP”,
“SKULineId”:4
}
]
}
]
},
{
“客户数据”:{
“secondLastName”:“González”,
“firstLastName”:“Pineda”,
“电话号码”:“55678420”,
“地址”:“Calle 26#4732 Pradera上校”,
“支付能力”:180,
“性别”:“女性”,
“姓名”:“玛丽亚”,
},
“命令”:[
{
“金额”:34371,
“期限”:“2017-07-21T17:32:28Z”,
“付款”:1423,
“id”:12678422,
“计算日期”:“2017-07-21T17:32:28Z”,
“产品”:[
{
“SKU编号”:28005417,
“数量”:1,
“SKULineDescription”:“Computadoras”,
“SKU说明”:“笔记本电脑HP”,
“SKULineId”:4
}
]
}
]
}
]
}
log(“整个数组==>”,数组);
//log(“customers属性==>”,数组[“customers”]);
//log(“第一个customerData==>”,数组[“Customers”][0]);
//log(“第一个customerData的订单==>”,数组[“客户”][0][“订单”]);
//log(“第一个customerData的所有产品==>”,数组[“客户”][0][“订单”].map(i=>i[“产品”]);
//log(“所有customerData”,数组[“Customers”].map(i=>i[“customerData”]);
//log(“所有订单”,数组[“客户”].map(i=>i[“订单”]);

//log(“所有客户的所有订单”,数组[“客户”].map(i=>i[“订单”])请发布您的实际代码。共享您的javascript代码,而不仅仅是对象。我尝试打印这样的元素:console.log('element:'+this.objCustomers[0]);并像这样循环(数组的let key.from(this.arrcusters.keys()){console.log(key);}您想做什么?详细列出对象的所有属性?仅包含数组的属性?无论如何,您的方法是
Object.keys
Array.reduce
和递归。解释得再清楚一点,这样我就可以帮上忙了。Quiero加入了一个非元素,特别是“客户数据”和“产品”。我是typescript新手,我想在数组中找到一个特定的对象,我已经声明了我的数组“arrcusters=new array();”我有这样一个方法:findOrdersByCustomer(dataCustomer:CustomerData){console.log('Element:'+this.arrcusters[0]);//在控制台中这是未定义的this.arrcusters.find(item=>item.customerData==dataCustomer);//我想按特定于客户的}@yessicaapalera,try,console.log('Element:',arrcusters[0]);//显示订单。我的意思是不带此属性的尝试。我的arrcusters是全局属性。您能为您的问题创建JSFIDLE吗?