असीमित संख्या में चर का संग्रह करने के लिए जावास्क्रिप्ट ऐरे
जावास्क्रिप्ट ब्राउजर भाषा है, इसलिए हर कोई नहींकार्य को अपने चर, सरणी और वस्तुओं की आवश्यकता है। कई मामलों में यह सिर्फ डीओएम (दस्तावेज़ का ऑब्जेक्ट मॉडल) का उपयोग करने के लिए पर्याप्त है। लेकिन यहां तक कि ऐसे मामलों में, डेटा का सही विवरण हमेशा प्रोग्राम को अधिक परिपूर्ण, उपयोगकर्ता के अनुकूल और आगे विकसित करता है।
शब्द मायने रखते हैं, लेकिन जब आप प्रोग्राम का नाम देते हैं,जो उपयोग और परिवर्तन के अधीन है, शब्दों को "डेटा" और "चर" को सीमित करना उचित है। खैर और वे क्या होंगे - जावास्क्रिप्ट ऐरे, ऑब्जेक्ट या बस इंटीजर - एक कार्य पर निर्भर करता है, इसमें एक विशिष्ट स्थान से अधिक सटीक रूप से।
कोड और डेटा तर्क
प्रोग्रामर का उपयोग डेटा में हेरफेर करने के लिए किया जाता है। एक नियम, सरणी और (पिछले कुछ दशकों) वस्तुओं के रूप में अलग-अलग प्रतिनिधित्वों (स्ट्रिंग्स, प्रतीकों, संख्याओं, तिथियों ...) में अभी भी चर थे।
कुछ समय पर, सख्त टाइपिंगडेटा एक अवशेष बन गया है, और अब हर आधुनिक भाषा में यह न केवल सामग्री को बदल सकता है, बल्कि प्रकार भी बदल सकता है। अच्छा या बुरा, यह देखा जाएगा, लेकिन सख्त टाइपिफिकेशन में इसकी सकारात्मक विशेषताएं हैं। हालांकि, अगर ऐसा हुआ, तो पूरी प्रक्रिया क्यों नहीं बढ़ती?
अर्थपूर्ण अर्थ में, वह बाहर हैवाक्यविन्यास, किसी भी चर के पास एक मूल्य है। और यह किसी भी स्थिति के लिए बदल जाता है। परिवर्तनों का अनुक्रम पहले से ही एक राशि है कि जावास्क्रिप्ट के संदर्भ में एक तत्व सरणी है।
दूसरे शब्दों में, अगर प्रोग्रामर ने संलग्न करने का फैसला नहीं किया हैएक चर के प्रकार के लिए मान और भाषा को उचित और समय पर रूपांतरण पर डाल दें, फिर क्यों सरल नहीं है: केवल डेटा है, अच्छी तरह से, एप्लिकेशन के बिंदु पर वे किस प्रकार का डेटा होंगे-संख्या, स्ट्रिंग, सरणी या ऑब्जेक्ट-यह हल करने के लिए कोड है। और भी सही ढंग से: यह स्वयं को निर्धारित करना चाहिए कि इसके साथ क्या किया जा सकता है और कैसे।
सरल डेटा और सिंटेक्स
सरल चर विभिन्न प्रकारों द्वारा दर्शाए जाते हैं। आवश्यकता होने पर रूपांतरण स्वचालित रूप से किया जाता है।
इस उदाहरण में, हम एक साधारण चर एस का वर्णन करते हैंजो जावास्क्रिप्ट ऐरे एचेक के साथ काम करने का परिणाम बन जाएगा। परिवर्तनीय मुझे सीधे एक चेक वर्कफ़्लो में वर्णित किया गया है। यहां सरणी के तत्व (जावास्क्रिप्ट ऐरे पुश निर्माण का उपयोग करके बनाया गया) एक अलग प्रकार के तीन मानों का प्रतिनिधित्व करता है। पहला चक्र स्ट्रिंग एस में दूसरे प्रकार के नामों को आउटपुट करता है, दूसरा - वास्तविक मान। प्रकार रूपांतरण स्वचालित रूप से किया जाता है।
सरणी में तत्वों की संख्या के बारे में
जावास्क्रिप्ट में, ऐरे एक सहयोगी सरणी नहीं है। तत्वों तक पहुंच संख्यात्मक कुंजी द्वारा की जाती है, तत्वों की अधिकतम संख्या 2 होती है32, लेकिन तत्वों की सीमित मात्रा के साथ प्रयोग नहीं होना चाहिए।
एक अच्छा एल्गोरिदम हमेशा डेटा की स्पष्ट मात्रा में होता है, और जावास्क्रिप्ट एरे लम्बाई निर्माण सिंटैक्स में पेश किया जाता है, इसकी सामग्री के संदर्भ में सरणी के आकार को नियंत्रित करने के लिए बिल्कुल नहीं।
एक चेक का मूल्य।लंबाई हमेशा तत्वों की असली संख्या नहीं है। जावास्क्रिप्ट में, ऐरे में उतना ही शामिल हो सकता है और वहां क्या भेजा गया था, लेकिन यह पता लगाने के लिए कि कभी-कभी आपको कड़ी मेहनत करनी पड़ती है।
इस उदाहरण में, अभिव्यक्ति Acheck [5] सरणी को छह तत्वों में बढ़ाती है। उम्मीद है कि लंबाई समारोह 4 का मूल्य देगा, उचित नहीं है।
सहयोगी सरणी
औपचारिक रूप से जावास्क्रिप्ट ऐरे केवल सामान्य हो सकता है, यानी, तत्वों तक पहुंच संख्यात्मक अनुक्रमणिका द्वारा की जाती है। हालांकि, हकीकत में, आप सहयोगी विचारों का उपयोग कर सकते हैं।
बहुत सरल और सामान्य स्ट्रिंग सॉर्टिंग समस्यास्तंभों पर तालिका को एक सहयोगी सरणी के माध्यम से हल किया जा सकता है। कॉलम नाम के बगल में सर्कल में डॉट का मतलब कोई सॉर्टिंग नहीं है, ऊपर तीर अवरोही क्रम में है, नीचे तीर आरोही क्रम में है। कॉलम परिवर्तन दिशा पर क्लिक करना (जावास्क्रिप्ट में वास्तविकता का प्रकार: सॉर्ट सॉर्ट करें)।
इस उदाहरण में, सरणी cSortCols में गठित होते हैंप्रत्येक कॉलम (एस, सी, डब्ल्यू, ...) के लिए क्रमबद्ध दिशा निर्देश। दिशानिर्देशों के मूल्य केवल आप हैं, डी। निर्माण के लिए, सब कुछ एक पंक्ति में एक साथ सिलाई जाती है (कॉलम कोड और सॉर्टिंग दिशा दोनों)। यह पाश सरणी के सभी तत्वों को देखता है, और आपको जावास्क्रिप्ट ऐरे लंबाई फ़ंक्शन का उपयोग करने की आवश्यकता नहीं है।
जावास्क्रिप्ट में एक ऐरे बनाना और छंटनी करना
एक सुंदर अभ्यास लिखना है "var xmass = [];" या"var yArr = {};"। पहले मामले में, दूसरे मामले में - एक सामान्य सरणी परिभाषित की जाएगी - सहयोगी। आप जावास्क्रिप्ट न्यू ऐरे () विकल्प का भी उपयोग कर सकते हैं, लेकिन आमतौर पर यह डिज़ाइन अन्य उद्देश्यों के लिए उपयोग किया जाता है, मुख्य रूप से वस्तुओं के साथ काम करने के लिए।
बनाई गई सरणी तुरंत भर दी जा सकती हैचर, लेकिन, एक नियम के रूप में, कार्यक्रम के निष्पादन के दौरान, गतिशीलता में सरणी के वास्तविक भरने और हेरफेर। यदि आपको सॉर्टिंग की आवश्यकता है, तो आप जावास्क्रिप्ट सॉर्ट एरे निर्माण का उपयोग कर सकते हैं, जो लचीला नहीं है, लेकिन आपको अपने स्वयं के फ़ंक्शन के माध्यम से प्रक्रिया को नियंत्रित करने की अनुमति देता है।
कॉल: arr.sort () ASCII तालिका प्रतीकों के क्रम में क्रमबद्ध करने की ओर जाता है। व्यस्त कार्य तत्वों का क्रमपरिवर्तन है: arr.reverse ()। यह फ़ंक्शन सरणी तत्वों के क्रम को उलट देता है।
दोनों मामलों में, शब्द एआर एक सरणी है। पहले मामले में, आप अपने सॉर्ट फ़ंक्शन का उपयोग कर सकते हैं, यानी, arr.sort (myfunc (a, b)) पर कॉल स्वयं फ़ंक्शन माईफक्ट को कॉल करेगा, जो डेटा के आधार पर परिणाम उत्पन्न करना चाहिए: ए और बी। यदि पहला दूसरा से कम है, तो -1, यदि इसके विपरीत, तो 1, और यदि ए = बी, तो 0. यहां तुलना मानदंड प्रोग्रामर द्वारा फ़ंक्शन myfunc में निर्धारित किया जाता है।
सक्रिय तत्व का विचार
सॉर्टिंग प्रक्रिया के दौरान कहा जाता है कि समारोह कर सकते हैंविभिन्न कार्यों का प्रदर्शन करें। जिस डिजाइन में इसे लागू किया गया है, उसके दृष्टिकोण से, इनपुट पैरामीटर का जवाब देने की आवश्यकता नहीं है, और इसका नतीजा न केवल तीन संख्या -1, 1 और 0. है। प्रत्येक तत्व के लिए चक्र रूप से सरणी में लागू होने पर, यह सरणी को पुनर्निर्माण कर सकता है।
यदि आप कल्पना करते हैं कि एक सरणी एक विशिष्ट अर्थ है, एक विशिष्ट डेटा संरचना, तो जावास्क्रिप्ट ऐरे एक परिवर्तनीय सामग्री के साथ एक चर बन जाता है।
यदि हम आधार के रूप में पहले या उपयोग के आधार के रूप में लेते हैंसरणी का अंतिम तत्व इसकी सामग्री के रूप में, फिर सॉर्ट फ़ंक्शन का निष्पादन सरणी को बदल सकता है ताकि कार्य की शर्तों के अनुसार पहले / अंतिम तत्व एक और तत्व बन जाए।
ऐसा विचार एल्गोरिदम को पुनर्निर्मित करने की अनुमति दे सकता हैइस तरह से समाधान, विशेष रूप से, यदि निर्माण () {} else {} और स्विच () {case "": ...; मामला "": ...; ...}।
किसी सरणी की सामग्री को मैनिपुलेट करना, आप इसके अंदर तत्वों को स्थानांतरित कर सकते हैं, इस प्रकार बाहरी कार्यक्षमता को बदल सकते हैं जिसे पहले या अंतिम तत्व के माध्यम से प्राप्त किया जा सकता है।
जावास्क्रिप्ट ऐरे: अजीब उपयोग
हर भाषा अच्छी है कि यह न केवल अनुमति देता हैडेटा की संरचना और सामग्री को बदलें, लेकिन वास्तविक कोड भी बदलें। चर को एक अमूर्तता के रूप में पेश करने का विचार, जो शुरू में अपनी मॉडल स्थिति प्रदान नहीं कर रहा है, नए क्षितिज खोलता है।
अमूर्तता से शुरू होने पर, एक चर, सरणी या ऑब्जेक्ट आपको डेटा प्रोसेसिंग प्रक्रिया को इस डेटा के फ़ंक्शन और गतिशीलता के रूप में प्रस्तुत करने की अनुमति देता है।
उदाहरण के लिए, पाठ पढ़ना, आप इसका वर्णन कर सकते हैं"पाठ", जिसे वाक्यों में विभाजित किया जाएगा - मानदंड "बिंदु" (संदर्भ में, अर्थात्, वाक्यों के स्वीकृत वाक्यविन्यास को ध्यान में रखते हुए)। वाक्य वाक्यांशों में विभाजित किया जाएगा (संदर्भ में, अल्पविराम और संबंधित वाक्यविन्यास)। अगले शब्द और अक्षर।
परिणाम: आप ग्रंथों, वाक्यों, शब्दों के स्तर पर काम कर सकते हैं। प्रत्येक स्तर पर, आप "विशिष्टता" के कार्यों को बना सकते हैं जो आपको समान या समान दिखने की अनुमति देंगे। आप वाक्यों को लागू करने के लिए फ़ंक्शंस बना सकते हैं, अन्य डेटा के वाक्यांश।
आधुनिक प्रोग्रामिंग लंबे समय से मतभेद नहीं है, लेकिनतथ्य यह है कि पिछले दशकों में बनाए गए सिंटेक्टिक निर्माण और संचित अनुभव ने नए क्षितिज खोल दिए हैं जिन्हें भाषाओं के डेवलपर्स द्वारा परिकल्पना नहीं की गई है - अभी तक खोज और उपयोग की जा रही है।