我想將具有特定屬性的對象轉換爲包含屬性值的字符串數組。對於一個實例對象採取Employee
下面的屬性與價值如何將對象轉換爲jQuery中的數組/ javascript
Employee.Name='XYZ'
Employee.ID=123
Employee.Address='ABC'
我想這一切是在陣列
var arr=['XYZ',123,'ABC']
如何在性能迭代。這可能嗎?請在這裏協助。
我想將具有特定屬性的對象轉換爲包含屬性值的字符串數組。對於一個實例對象採取Employee
下面的屬性與價值如何將對象轉換爲jQuery中的數組/ javascript
Employee.Name='XYZ'
Employee.ID=123
Employee.Address='ABC'
我想這一切是在陣列
var arr=['XYZ',123,'ABC']
如何在性能迭代。這可能嗎?請在這裏協助。
使用$.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
遍歷這樣
var arr = [];
for (var key in Employee) {
arr.push(Employee[key]);
}
注對象:訂單沒有在這種情況下定義
你可以通過每個屬性循環,將它的值添加到數組中:
var arr = [];
for (var prop in Employee) {
if (Employee.hasOwnProperty(prop)) {
arr.push(Employee[prop]);
}
}
實施例 - http://jsfiddle.net/infernalbadger/2PHpZ/
或者使用jQuery:
var arr = $.map(Employee, function(propValue) {
return propValue;
});
var myArray=[];
for (var key in Employee) {
if (Employee.hasOwnProperty(key)) {
myArray.push(Employee[key]));
}
}
'if'中的'p'是什麼? – Jai
@Jai ..謝謝:)糾正 –
var Employee = {};
Employee.Name='XYZ';
Employee.ID=123;
Employee.Address='ABC';
var empArray =[];
$.each(Employee,function(item){
empArray.push(item);
});
console.log(empArray);
自JavaScript 1.7以來。參考JavaScript language advanced Tips & Tricks。
var arr = [Employee.Name,Employee.ID,Employee.Address];
+1但最好使用'var arr = [];'而不是'var arr = new Array();'。另外值得注意的是訂單沒有定義。 –
啊,我會更新,順便說一句,爲什麼是ARR = []更好的ARR =新陣列()它更快? – Anton
@ 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];'有兩個入口的數組。一致和清晰。 –