के माध्यम से पुनरावृत्ति मैं एक विरल सरणी (अनुक्रमित लगातार नहीं हैं) इस तरह है:जावास्क्रिप्ट विरल सरणी
var testArray = { 0: "value1", 5: "value2", 10: "value3", 15: "value4" };
मैं बस प्रत्येक आइटम के माध्यम से पुनरावृति, कुछ सामान करते हैं, और एक के तहत तोड़ने में सक्षम होना चाहते हैं निश्चित परिस्थिति।
मैं जावास्क्रिप्ट के लिए बिल्कुल नया हूं और मुझे इसे करने का उचित तरीका नहीं मिला। यहां मैंने कोशिश की है:
अंतर्निहित "for..in"। ऐसा लगता है कि यह not the correct way to iterate through an array
forEach ECMASCRIPT5 से है। यह सही ढंग से पुनरावृत्त है, लेकिन मैं लूप से नहीं तोड़ सकता।
_.each() Underscore.js से। # 2 के समान परिणाम।
$.each() JQuery से। इस के साथ मैं झूठी वापसी करके तोड़ सकता हूं, लेकिन यह सही ढंग से पुन: सक्रिय नहीं होगा। उपर्युक्त उदाहरण के लिए, 0, 5, 10, 15 पर पुनरावृत्त करने के बजाय, यह 0,1,2,3,4,5,6 पर फिर से शुरू हो जाएगा ... जो स्पष्ट रूप से मैं अपेक्षा नहीं करता हूं।
तो मेरे सवाल है: वहाँ एक आसान तरीका जावास्क्रिप्ट में पाश के दौरान तोड़ने के लिए संभावना के साथ एक विरल सरणी पुनरावृति करने के लिए है या यह एक hashtable की तरह एक और डेटा संरचना का उपयोग करने के बेहतर होगा? यदि हां, तो कोई सिफारिश?
धन्यवाद!
यदि आप बिंदु # 1 में दिए गए लिंक को देखते हैं, तो अंतर्निहित ..in लूप एक ऑब्जेक्ट गुणों के माध्यम से लूप करने का तरीका है, जो आपके पास – anson
है जो मुझे लिंक से समझा गया था यदि कोई लाइब्रेरी Array.prototype में सदस्य जोड़ती है तो एक समस्या संभावित रूप से हो सकती है। तब सदस्य "for..in" लूप का हिस्सा होगा। – Absolom
आह ठीक है, मेरा उदाहरण वैध नहीं था क्योंकि मैं ऑब्जेक्ट का उपयोग कर रहा था और एक ऐरे नहीं था। तो आपकी टिप्पणी सही है। – Absolom