क्या कोई अन्यथा उत्कृष्ट jQuery.each
फ़ंक्शन को अब (0) मूल Array.forEach
से अलग डिज़ाइन किया गया है? एफएक्स:jQuery.each कार्यान्वयन देशी Array से अलग है। प्रत्येक
var arr = ['abc','def'];
arr.forEach(function(entry, index) {
console.log(entry); // abc/def
});
यह पूर्ण समझ में आता है।
$.each(arr, function(index, entry) {
console.log(entry);
});
किसी को भी इस डिजाइन निर्णय के पीछे तर्क पता है: लेकिन jQuery index
पहले तर्क के रूप में डाल करने के लिए चुना है? मैंने हमेशा $.each
बड़े पैमाने पर उपयोग किया है, लेकिन यह हमेशा मुझे खराब करता है कि सूचकांक पहला तर्क था क्योंकि इसका शायद ही कभी उपयोग किया जाता है। मैं जानता हूँ कि jQuery this
के माध्यम से एक सीधा संदर्भ लागू किया लेकिन यह बहुत भ्रामक है यदि आप कार्य करें:
var arr = ['abc','def'];
$.each(arr, function() {
console.log(this === 'abc'); // false both times, since this is a String constructor
});
ऐसा नहीं है कि यह मुझे इतना परेशान है, मैं सबसे आम नई सरणी कार्यों के लिए देशी polyfills उपयोग करना पसंद करते हैं, लेकिन मैं हमेशा से है डिजाइन निर्णय के बारे में उत्सुक था। हो सकता है कि ब्राउज़रों ने देशी forEach
को लागू करने से पहले पुराने समय में बनाया गया था और विरासत समर्थन ने उन्हें बदलने से रोक दिया था, या ...?
या शायद, यह इस तरह से डिज़ाइन किया गया है क्योंकि देशी वस्तुओं पर भी इसका उपयोग किया जा सकता है, इसके बजाय कॉलबैक में मूल्य से पहले कुंजी को "समझ में आता है" ...?
Sidenote: मैं Underscore.js (और शायद अन्य पुस्तकालयों) यह दूसरी तरह के आसपास (देशी कार्य करने के लिए और अधिक समान) करता है पता है।
jQuery का गैर-अनुरूप संस्करण मूल विधियों की तरह ऐरे में छेद पर छोड़ने में विफल रहता है। –
एक साइड नोट के रूप में, अंडरस्कोर सिर्फ "मूल कार्य के समान नहीं है"; यह वास्तव में मूल कार्य का उपयोग करता है यदि वर्तमान में (और यदि नहीं, तो यह इसके कार्यान्वयन का उपयोग करता है जिसे विशेष रूप से मूल दर्पण के लिए डिज़ाइन किया गया है)। – machineghost
मुझे पता है कि इससे कोई फर्क नहीं पड़ता, लेकिन मुझे नहीं लगता कि मैं 'ऑर्डर, इंडेक्स)' के आदेश में भी सहमत हूं। मुझे नहीं पता कि यह '(कुंजी, मान)' क्यों नहीं होगा, क्योंकि 'कुंजी' सरणी के लिए 'इंडेक्स' जैसा ही है और आप आमतौर पर चीजों को 'कुंजी, मान' के रूप में संदर्भित करते हैं। बस मेरा दृष्टिकोण ... – Ian