2011-06-15 13 views
7
var Config = { 
    Windows: ['apple','mangi','lemon'] 
} 

पर मेरे पास एरे मान को धक्का देना मेरे पास एक शर्त है और उस पर आधारित मैं अपने ऐरे में केला मूल्य को पुश करना चाहता हूं।पहले इंडेक्स

If(Condition Passed) { 
     Config.Windows.unshift('banana'); 
     Windows: ['banana','apple','mangi','lemon'] 
     Config.Windows.reverse(); 
     // The way the Array elements are now reversed and First banana is accessed. 
    } else { 
     Config.Windows.reverse();  
} 

यह यह क्या करता है नहीं ... जब मैं अपने अन्य समारोह में Config.Windows का उपयोग कोई banana मूल्य ... सभी

for each(var item in Config.Windows.reverse()) { 
Ti.API.info(item); 
//This does not print banana 
+1

' unshift' आईई द्वारा समर्थित नहीं है, तो यह बताते हैं कि अगर आपके ब्राउज़र क्यों यह काम नहीं कर रहा –

+0

जानकारी के लिए:। 'Each' के लिए एक मोज़िला का निर्माण है यह किसी भी अन्य ब्राउज़र में काम नहीं करेगा। –

+0

'unshift' * आईई में समर्थित है, लेकिन अन्य ब्राउज़रों के विपरीत नई सरणी की लंबाई वापस नहीं करता है ([जॉन की टिप्पणी] के लिए धन्यवाद (http://stackoverflow.com/a/13280099/141881) पॉइंटिंग के लिए यह बाहर है) – pospi

उत्तर

7

पर ऐसे कई तरीके हैं जिसमें आप मूल्य को सरणी के सामने धक्का दे सकता है। इसके तत्काल बाद, मैं दो तरीकों के बारे में सोच सकते हैं:

  • एक नई सरणी बनाएँ, और की जगह पुराने

    if (condition) { 
        Config.Windows = ['banana'].join(Config.Windows) 
        Config.Windows.reverse(); 
    } else { 
        Config.Windows.reverse(); 
    } 
    
  • तुम क्या कहा है के आधार पर, इसे और अधिक समझ बनाने हैं हमेशा उल्टा करने के लिए सरणी, तो अपने मूल्य धक्का:

    //initial array: ['apple','mangi','lemon'] 
    
    Config.Windows.reverse(); //['lemon','mangi','apple'] 
    if (condition) { 
        //this will get the same result as your code 
        Config.Windows.push("banana"); //['lemon','mangi','apple', 'banana'] 
    } 
    
संबंधित मुद्दे