2016-12-15 62 views
2

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

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

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

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

第二个参数?那么第一个理由应该是什么? –

+0

请向我们提供您正在讨论的代码。 – iHasCodeForU

+0

你真的试图写点什么吗?任何代码显示? – agfc

回答

1

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'));

您可能需要填充工具Object.values

+1

'对象[str](o)'...但是真的,谁需要这样的功能? – georg

+1

维多利亚呢! – Ben

3

你不需要这个功能。

使用Object.keys检索键和Object.values的值。后者没有得到普遍支持还没有,但填充工具很简单:

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

docdoc

相关问题