代码之家  ›  专栏  ›  技术社区  ›  anonymous

如何从具有map[duplicate]的对象数组中提取类似“customer.gender”的属性

  •  2
  • anonymous  · 技术社区  · 7 年前

    我正在使用javascript映射遍历一个对象数组。今天我要循环遍历一个数组,看起来像,

    averageReport = [
        {
          "result": 150.54909908933223,
          "customer.gender": "Female"
        },
        {
          "result": 150.35230422844595,
          "customer.gender": "Male"
        }
      ];
    

    我只想得到“顾客。性别”,

    averageReport
          .map(x => console.log(x.customer.gender)
    

    )

    我得到错误“无法读取未定义的属性'gender'” code on stackblitz

    3 回复  |  直到 7 年前
        1
  •  3
  •   Rohith Murali    7 年前

    尝试,

    averageReport
          .map(x => console.log(x["customer.gender"])
    
        2
  •  3
  •   Luca Kiebel    7 年前

    自从你给你的钥匙起名字 customer.gender 你不能用点符号来得到这个值,你必须用括号符号( [] ).

    也映射到 console.log() 没有什么意义(因为 控制台.log() 回报 undefined ,您正在创建一个新的数组 未定义 使用时 map() 在这里),使用 forEach() :

    averageReport = [{
        "result": 150.54909908933223,
        "customer.gender": "Female"
      },
      {
        "result": 150.35230422844595,
        "customer.gender": "Male"
      }
    ];
    
    averageReport.forEach(x => console.log(x["customer.gender"]));

    如果要使用点表示法访问属性,则必须 customer 一个物体和 gender 它的一种属性,如:

    averageReport = [{
        "result": 150.54909908933223,
        "customer": {
          "gender": "Female"
        }
      },
      {
        "result": 150.35230422844595,
        "customer": {
          "gender": "Male"
        }
      }
    ];
    
        3
  •  1
  •   amrender singh    7 年前

    使用 bracket notation 用于访问 customer.gender 财产。请尝试以下操作:

    var averageReport = [ { "result": 150.54909908933223, "customer.gender": "Female" }, { "result": 150.35230422844595, "customer.gender": "Male" } ];
      
    var result = averageReport.map(x =>x["customer.gender"]);
    console.log(result);