2015-06-11 3 views
5

मैं यहां toArray() पर दस्तावेज़ पढ़ रहा था और इसे कंसोल में परीक्षण कर रहा था। मुझे चयनकर्ता पर toArray() पर कॉल करने और चयनकर्ता को स्वयं कॉल करने के बीच अंतर नहीं मिल रहा है।

मुझे सटीक परिणाम दोनों तरीकों से मिला, जो कि चयनकर्ता से मेल खाने वाले डीओएम तत्वों की एक सरणी है। मैं भी एक और परीक्षण

$("element").toArray()[0] === $("element")[0] 

w3schools

toArray() विधि तत्व एक सरणी के रूप में jQuery चयनकर्ता के अनुरूप रिटर्न के अनुसार किया।

हालांकि, ऐसा लगता है कि तत्व से पूछताछ करना ठीक वही काम करता है। और यह भी लिखना बहुत आसान है।

क्या किसी को इन दोनों के बीच अंतर पता है? यदि नहीं, तो मैं इस समारोह के उद्देश्य को समझ नहीं पा रहा हूं।

+3

'toArray' आपको एक शुद्ध जेएस सरणी देता है ताकि आप जावास्क्रिप्ट 'Array.prototype' विधियों को कॉल कर सकें। – AmmarCSE

+0

यदि आप सरणी में अलग-अलग तत्वों तक पहुंच रहे हैं तो कोई अंतर नहीं है (जैसा कि आपका स्वयं का परीक्षण दिखाता है)। यह है कि आप सरणी के साथ क्या करते हैं (क्या आप परिणामों पर अधिक jQuery कहते हैं?) जो मायने रखता है। –

+2

इसे आज़माएं और आप तुरंत देखेंगे कि क्यों ... '$ (" div ")। ToArray()। Hide();' – Archer

उत्तर

9

the docs से इस उदाहरण लें:

आप $('img').reverse() की तरह कुछ करते हैं, तो आपको एक त्रुटि मिल जाएगा।

यदि आप $('img').toArray().reverse() जैसे कुछ करते हैं तो आपको डीओएम नोड्स की उलटा सरणी मिल जाएगी।

ऐसा इसलिए है क्योंकि यदि आप पहले toArray() नहीं करते हैं, तो आपके पास सभी शानदार Array prototype methods उपलब्ध नहीं होंगे।

+0

ठीक है, किसी भी जावास्क्रिप्ट सरणी पर रिकॉर्ड 'typeof' के लिए' ऑब्जेक्ट 'वापस कर देगा। वहां अन्य ऐरे जैसी वस्तुएं हैं, जैसे किसी भी फ़ंक्शन बॉडी में दी गई 'तर्क' वस्तु। –

संबंधित मुद्दे