【问题标题】:write a function that returns an array of all the values of all the keys it corresponds to [closed]编写一个函数,该函数返回它对应的所有键的所有值的数组[关闭]
【发布时间】:2016-11-08 12:00:36
【问题描述】:

我想创建一个函数,可以调用它来返回一个包含每个对象的所有值的数组。 e.g. function find ("firstName") returns ["Virginia", "Zadie", "Jane", "Bell"]

解释也很好,因为我对编程和尝试学习非常陌生。谢谢

var writers = [
  {
    firstName: "Virginia",
    lastName: "Woolf",
    occupation: "writer",
    age: 59,
    alive: false
  },
  {
    firstName: "Zadie",
    lastName: "Smith",
    occupation: "writer",
    age: 41,
    alive: true
  },
  {
    firstName: "Jane",
    lastName: "Austen",
    occupation: "writer",
    age: 41,
    alive: false
  },
  {
    firstName: "bell",
    lastName: "hooks",
    occupation: "writer",
    age: 64,
    alive: true
  },
];

【问题讨论】:

  • 请说明您迄今为止尝试过的内容,包括代码示例。

标签: javascript arrays function object


【解决方案1】:

您可以使用map() 方法创建此函数。

var writers = [ { firstName: "Virginia", lastName: "Woolf", occupation: "writer", age: 59, alive: false }, { firstName: "Zadie", lastName: "Smith", occupation: "writer", age: 41, alive: true }, { firstName: "Jane", lastName: "Austen", occupation: "writer", age: 41, alive: false }, { firstName: "bell", lastName: "hooks", occupation: "writer", age: 64, alive: true }];

function get(key, arr) {
  return arr.map(function(e) {
    return e[key]
  })
}

console.log(get('firstName', writers))
console.log(get('occupation', writers))

【讨论】:

    【解决方案2】:

    您可以将密钥用作查找函数的参数。

    property accessor,这里使用的是括号符号。

    keys= 'name';
    variable[key]
    

    这等同于相同,写成点符号

    variable.name
    

    function find (key) {
        return writers.map(function (a) { 
            return a[key];
        });
    }
    
    var writers = [ { firstName: "Virginia", lastName: "Woolf", occupation: "writer", age: 59, alive: false }, { firstName: "Zadie", lastName: "Smith", occupation: "writer", age: 41, alive: true }, { firstName: "Jane", lastName: "Austen", occupation: "writer", age: 41, alive: false }, { firstName: "bell", lastName: "hooks", occupation: "writer", age: 64, alive: true }, ];
                   
    console.log(find('firstName'));
    console.log(find('lastName'));

    【讨论】:

      猜你喜欢
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2022-11-19
      相关资源
      最近更新 更多