【问题标题】:How can I return or log all "name" values in this array of objects [duplicate]如何返回或记录此对象数组中的所有“名称”值[重复]
【发布时间】:2019-06-15 01:33:24
【问题描述】:

我有这个对象数组。我试图让“名称”属性返回或控制台日志

我尝试过使用索引(可能是错误的)所以我很卡住。

var peopleArray = [{
        name: "Harrison Ford",
        occupation: "Actor"
    },
    {
        name: "Justin Bieber",
        occupation: "Singer"
    },
    {
        name: "Vladimir Putin",
        occupation: "Politician"
    },
    {
        name: "Oprah",
        occupation: "Entertainer"
    }
]

结果应该是:

["Harrison Ford", "Justin Bieber", "Vladimir Putin", "Oprah"]

【问题讨论】:

  • I've tried 根据您发布的“代码”没有任何内容
  • 你尝试了什么?我没有看到任何发布的尝试

标签: javascript arrays object javascript-objects


【解决方案1】:

使用map:

var peopleArray = [{name:"Harrison Ford",occupation:"Actor"},{name:"Justin Bieber",occupation:"Singer"},{name:"Vladimir Putin",occupation:"Politician"},{name:"Oprah",occupation:"Entertainer"}];
const res = peopleArray.map(({ name }) => name);
console.log(res);

ES5 语法:

var peopleArray = [{name:"Harrison Ford",occupation:"Actor"},{name:"Justin Bieber",occupation:"Singer"},{name:"Vladimir Putin",occupation:"Politician"},{name:"Oprah",occupation:"Entertainer"}];
var res = peopleArray.map(function(e) {
  return e.name;
});
console.log(res);

【讨论】:

    【解决方案2】:

    要选择数组对象的属性,可以使用map()函数

    let result = peopleArray.map(function(item) { return item['name']; });
    

    如果要从数组对象中选择多个属性,可以使用map和object destructing

    result = peopleArray.map(({ name, age }) => ({
      name, 
      age
    }));
    

    var peopleArray = [{
            name: "Harrison Ford",
            occupation: "Actor",
            age: 21
        },
        {
            name: "Justin Bieber",
            occupation: "Singer",
            age: 22
        },
        {
            name: "Vladimir Putin",
            occupation: "Politician",
            age: 23
        },
        {
            name: "Oprah",
            occupation: "Entertainer",
            age: 24
        }
    ]
    
    let result = peopleArray.map(function(item) { return item['name']; });
    console.log(result);
    
    result = peopleArray.map(({ name, age }) => ({
      name, 
      age
    }));
    
    console.log(result);

    【讨论】:

      【解决方案3】:

      你也可以使用地图

      var person = peopleArray.map(({name}) => name);
      console.log(person)
      //["Harrison Ford", "Justin Bieber", "Vladimir Putin", "Oprah"]
      

      您可以使用 forEach 一个接一个地显示它们

      peopleArray.forEach(person => {
       console.log(person.name)
      })
      // "Harrison Ford"
      // "Justin Bieber"
      // "Vladimir Putin"
      // "Oprah"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-26
        • 2020-07-27
        • 1970-01-01
        • 2021-06-07
        • 1970-01-01
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多