2016-12-15 58 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

相關問題