2017-03-16 5 views
0

オブジェクトを取り込み、このオブジェクトのプロパティ値を持つ配列を返す関数を記述する必要があります。私はObject.values()を使用することができないJavaScriptのオブジェクトから配列

var array = ["John", 27, "USA"]; 

例:

var obj = { 
    name: "Joao", 
    age: 27, 
    country: "USA" 
}; 

関数は、このような配列を返さなければなりません。私の最後の試みがどのように見えるかだ

:それは値を持つ配列を返しません

function returnValues(obj) { 
    for (var key in obj) { 
    return obj[key]; 
} 

。誰でも助けてくれますか?

+0

'私はObject.values()を使用することはできません' YESことができます - 。https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects /オブジェクト/値#Polyfill –

答えて

2

は、配列にそれを追加して、配列あなたはObject.keysを使用して値を返すことを反復するか

function returnValues(obj) { 
    var arr = []; 
    for (var key in obj) 
     arr.push(obj[key]); 
    return arr; 
} 
3

戻る:

function returnValues(obj) { 
    return Object.keys(obj).map(function(key) { 
     return obj[key]; 
    }); 
} 

か、使用して一時配列を作成することができますが既存のソリューション:

function returnValues(obj) { 
    var temp = []; 
    for (var key in obj) { 
     temp.push(obj[key]); 
    } 
    return temp; 
} 

ES6サポートでは、

const returnValues = (o) => Object.keys(o).map(k => o[k]); 

または使用Object.entries:ortenにあなたはES2017をサポートしている場合

Object.entries(obj).map(([,v]) => v) 

それとも@ibrahim mahrirが指摘するように、あなたはObject.values使用することができます。

console.log(Object.values(obj)); 
+1

Thanks @ibrahimmahrir。すべてのソリューションを追加してください! :P –

+0

@ibrahimmahrir私はあなたにこの答えのために受け取ったupvoteを寄付することができたらいいと思う:P - updated –

+0

私はとても助けてうれしい! –

2

をあなたが使用して試みることができます地図:

var obj = { 
 
    name: "Joao", 
 
    age: 27, 
 
    country: "USA" 
 
}; 
 

 
var array = Object.keys(obj).map(item => obj[item]); 
 

 
console.log(array);

0

Object.entries()も使用できます。

var obj = {name: "Joao", age: 27, country: "USA"}, 
 
    elems = Object.entries(obj).map(v => v[1]); 
 

 
    console.log(elems);

関連する問題