2017-05-03 46 views
0

我這裏有一個數組對象:轉換對象文本到一個數組

var obj = { 
    name: 'Chris', 
    age: 25, 
    hobby: 'programming' 
}; 

我需要將一個對象類型,數組的數組轉換即使不知道密鑰或類似這樣的值的函數:

[['name', 'Chris'], ['age', 25], ['hobby', 'programming']] 

所以我創建了一個函數來做到這一點。但是我不確定從哪裏開始讓我合併它們。

function convert(obj) { 
var array = []; 


} 

convert(obj); 

任何幫助?

+0

['Object.prototype.keys()'](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)+ ['Array.prototype.map()'](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/map) – Andreas

+0

你爲什麼[在這些格式之間切換](http://stackoverflow.com/questions/43753457/merge-array-to-object-array-javascript)? – Cerbrus

+0

有什麼具體的原因呢?與迭代和比較嵌套數組相比,對象更容易解析和獲取特定值! :) –

回答

3

使用Object.keys()Array#map()

var obj = { 
 
    name: 'Chris', 
 
    age: 25, 
 
    hobby: 'programming' 
 
}; 
 

 
function convert(obj) { 
 
    return Object.keys(obj).map(k => [k, obj[k]]); 
 
} 
 

 
console.log(convert(obj));

0

你可以這樣做:
1.迭代通過對象
2.推入到數組鍵和值,然後PUH數組到答案array

var obj = { 
 
    name: 'Chris', 
 
    age: 25, 
 
    hobby: 'programming' 
 
}; 
 

 

 
var ans = []; 
 
for(var i in obj) { 
 
ans.push([i, obj[i]]); 
 
} 
 

 
console.log(ans);

0

您可以使用Object.keys提取所有屬性名稱:

var arr=[]; 
Object.keys(obj).forEach(function(key){ 
    arr.push([key, obj[key]]); 
})