【问题标题】:A function returning all keys or values of an object as array将对象的所有键或值作为数组返回的函数
【发布时间】:2016-12-15 12:09:20
【问题描述】:

我需要创建一个getObjectData() 函数,它根据参数返回一个对象的所有键或值的数组。

如果字符串values作为第二个参数传递,它返回对象(obj)的值,如果传递字符串keys,它必须返回键。

var person = {
    firstName: 'Bill',
    surname: 'Bradley',
    age: 27
};

var pet = {
    animal: 'Dog',
    breed: 'Terrier',
    colour: 'Brown"
};

【问题讨论】:

  • 第二个参数?那么第一个参数应该是什么?
  • 请向我们提供您所说的代码。
  • 你真的尝试写点什么吗?有什么代码可以展示吗?

标签: javascript arrays function object key-value


【解决方案1】:

你不需要这个函数。

使用Object.keys 检索键,使用Object.values 检索值。后者尚未得到普遍支持,但 polyfill 很容易:

Object.values = Object.values || (o => Object.keys(o).map(k => o[k]));

doc, doc

【讨论】:

    【解决方案2】:

    var person = { firstName: 'Bill', surname: 'Bradley', age: 27 }; 
    var pet = { animal: 'Dog', breed: 'Terrier', colour: 'Brown' };
    
    function keysOrValues(o, str) {
        switch(str) {
            case 'keys':
              return Object.keys(o);
             case 'values':
              return Object.values(o);
        }
    }
    
    console.log(keysOrValues(person, 'keys'));
    console.log(keysOrValues(person, 'values'));

    你可能需要 polyfill Object.values

    【讨论】:

    • Object[str](o)...但说真的,谁需要这样的功能?
    • 维多利亚会!!
    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2021-06-10
    • 2022-11-27
    • 1970-01-01
    • 2012-05-30
    相关资源
    最近更新 更多