2014-01-14 41 views
0

我想將具有特定屬性的對象轉換爲包含屬性值的字符串數組。對於一個實例對象採取Employee下面的屬性與價值如何將對象轉換爲jQuery中的數組/ javascript

Employee.Name='XYZ' 
Employee.ID=123 
Employee.Address='ABC' 

我想這一切是在陣列

var arr=['XYZ',123,'ABC'] 

如何在性能迭代。這可能嗎?請在這裏協助。

回答

2

使用$.map()

var arr = $.map(Employee, function(value, key){ 
    return value 
}) 

演示:Fiddle

注:循環的順序是不可靠的,所以值的數組中的順序可能不總是相同


處理它的另一種方法是使用固定的鍵數組,以便輸出數組將具有預定義的s層序

var keys = ['Name', 'ID', 'Address']; 
var Employee = {}; 
Employee.Name = 'XYZ' 
Employee.ID = 123 
Employee.Address = 'ABC' 
var arr = $.map(keys, function (key, idx) { 
    return Employee[key] 
}) 
console.log(arr) 

演示:Fiddle

1

遍歷這樣

var arr = []; 
for (var key in Employee) { 
    arr.push(Employee[key]); 
} 

注對象:訂單沒有在這種情況下定義

+0

+1但最好使用'var arr = [];'而不是'var arr = new Array();'。另外值得注意的是訂單沒有定義。 –

+0

啊,我會更新,順便說一句,爲什麼是ARR = []更好的ARR =新陣列()它更快? – Anton

+1

@ Anton:*「它快嗎?」* [通常](http://jsperf.com/creation-array),但這並不重要。 'Array'可以被重新定義(例如'var Array'),它很混亂和不一致:'var a = new Array(5);'給你一個不包含長度爲5的條目的數組。 'var a = new Array(「5」);'給你一個有一個入口('「5」')的數組。 'var a = new Array(5,2);'給你一個有兩個入口('5'和'2')和''''長度'的數組。相反,'var a = [5];'給你一個有一個入口的數組和一個'var a = [5,2];'有兩個入口的數組。一致和清晰。 –

0
var myArray=[]; 

for (var key in Employee) { 
    if (Employee.hasOwnProperty(key)) { 
    myArray.push(Employee[key])); 
    } 
} 
+0

'if'中的'p'是什麼? – Jai

+0

@Jai ..謝謝:)糾正 –

0
var Employee = {}; 
Employee.Name='XYZ'; 
Employee.ID=123; 
Employee.Address='ABC'; 

var empArray =[]; 

$.each(Employee,function(item){ 
    empArray.push(item); 
}); 

console.log(empArray); 

fiddle

相關問題