2016-10-30 63 views
0

假設我有一個如下所示的對象:{first:「asdasd」,second:「asdas」,third:「dasdas」,4:「sdasa」} 需要將此對象轉換爲數組。如何將對象轉換爲angularjs中的數組Ionic

if(values){ 
    var first=values.first; 
    var second=values.second; 
    var third=values.third; 
    var four=values.four; 
    var five=values.five; 
    var six=values.six; 
    var seven=values.seven; 
    var eight=values.eight; 
    var nine=values.nine; 
    var ten=values.ten; 

    if(first){ 
    userData.push(first); 
    } 
    if(second){ 
    userData.push(second); 
    } 
    if(third){ 
    userData.push(third); 
    } 
    if(four){ 
    userData.push(four); 
    } 
    if(five){ 
    userData.push(five); 
    } 
    if(six){ 
    userData.push(six); 
    } 
    if(seven){ 
    userData.push(seven); 
    } 
    if(eight){ 
    userData.push(eight); 
    } 
    if(nine){ 
    userData.push(nine); 
    } 
    if(ten){ 
    userData.push(ten); 
    } 
    console.log(userData); 

我目前正在做這個代碼,但我認爲這是錯誤的做法。那麼我怎麼能改變這個看起來像[「asdasd」,「asdas」,「dasdas」,「sdasa」,「asdasd」,「asdas」,「dasdas」,「sdasa」]的數組。 當我在ng-repeat中使用對象時,在離子拖放指令中不起作用。當我將數組應用於ng-repeat時,它完美工作。

回答

2

有幾種方法可以做到這一點。

人會使用Object.keys

Object.keys(values).forEach(function(key) { 
    userData.push(values[key]); 
}); 

您也可以使用for ... in這樣的:

for (var key in values) { 
    userData.push(value[key]); 
} 

如果你的對象有任何屬性從原型繼承那麼它也將顯示,讓你做需要檢查屬性是否真的屬於這種情況:

for (var key in values) { //proper way to iterate keys using for..in 
    if(values.hasOwnProperty(key)) { 
     userData.push(value[key]); 
    } 
} 

由於您使用的角度,你也可以使用angular.forEach

angular.forEach(values, function(value){ 
    userData.push(value); 
}); 

,我認爲這是你最乾淨的解決方案。

+0

非常感謝@Randall Flagg。 –

+0

你可以接受這個答案,如果你喜歡它,就可以加註。 –

1

`

 if(values) 
    { 
Object.keys(values).forEach(function(key) { 
    userData.push(values[key]); 
}); 
    } 

` 有時候,而不是一個簡單的解決方案,我們想得太多,複雜的時間最終以解決方案,我們可以用小的簡單的代碼實現

+0

感謝@Parshuram的幫助。 –

+0

歡迎我的朋友 –

1

我建議使用javascript庫的下劃線或lodash這種數組和對象的操作和迭代,因爲它似乎是最好的方式,保持你的代碼清潔。 它是一個簡單的JavaScript文件,您可以將其包含在您的項目中,並且不必做任何複雜的事情就可以使其工作。只需即插即用。

如果你有下劃線/ lodash,所有你需要做的是: -

var mycoll = _.values(yourobjectvariable); 

這將獲取該對象中所有的值,它會自動轉換爲數組你。

http://underscorejs.org/#values

或者,如果你想與普通的JavaScript做到這一點,我覺得上面的蘭德爾標誌的答案是足夠了吧。

+0

非常感謝你@Neel –

相關問題