मानक जावास्क्रिप्ट में underscore.js की कार्यक्षमता को फिर से कार्यान्वित करने के लिए प्रोग्रामिंग चुनौती पर काम करना। विशेष रूप से मैं _.some
फ़ंक्शन को लागू करने पर काम कर रहा हूं। (http://underscorejs.org/#some) जिस भाग के साथ मैं संघर्ष कर रहा हूं वह मुझे _.every
आंतरिक रूप से उपयोग करने के लिए हल करने का तरीका ढूंढ रहा है। (http://underscorejs.org/#every)_.every का उपयोग कर _.some को कैसे हल करें?
मैंने पहले से ही _.every
फ़ंक्शन पहले ही समाप्त कर लिया है और यह काम करता है जैसा कि यह करना चाहिए।
_.some = function(collection, truthStatementFunction) {
return !(_every(collection, !truthStatementFunction))
}
या अंग्रेजी में, सच्चाई बयान परीक्षण करने के लिए जहां हालत झूठी है फ्लिप ... और अगर _.every
परीक्षण तो सच रिटर्न:
यहाँ है कि मैं क्या sketched कोड में करना चाहते हूँ तार्किक है ... तो हम जानते हैं कि _.s मूल सत्य कथन का कुछ गलत है (इसलिए के लिए सही वापसी प्राप्त करने के लिए _.every
की वापसी को फ़्लिप करें)। इसी तरह _.every
झूठी वापसी करता है तो _.some
के लिए सही की सही वापसी प्राप्त करने के लिए फ़्लिप करें।
स्पष्ट रूप से इस स्केच के साथ समस्या !truthStatementFunction
भाग है। फ़ंक्शन के आंतरिक भाग को फ़्लिप करने के लिए मैं उस इटरेटर को अंदर कैसे प्राप्त करूं? नहीं लगता है कि समारोह के आंतरिक भागों से सुलभ हैं ...
मैं पूरी तरह गलत पेड़ भौंकने कर रहा हूँ, और वहाँ _.every
का उपयोग कर इस को हल करने के लिए एक बेहतर तरीका है?
आपको सही विचार मिला। हालांकि, आपको 'compose] (https://en.wikipedia.org/wiki/Function_composition) '!' ऑपरेटर और फ़ंक्शन की आवश्यकता है; यह 'function (x) {return! trueStatementFunction (x)} की तरह कुछ है, बस 'सत्य स्टेटमेंट फ़ंक्शन' के बजाय। –
अपने प्रश्न का उत्तर देने के लिए ... यह एक सीखने का अभ्यास है, इसलिए बिंदु सीखना है, एक तरफ या दूसरा (हालांकि मुझे पता है कि इसे अपने आप पर 100% हल करना सीखने का सबसे प्रभावी तरीका होगा, बहुत लंबे समय तक अटक जाना और समय बर्बाद करना कि मैं अन्य समान रूप से उपयोगी चीजों को सीखने में खर्च कर सकता हूं, मुझे कोई अच्छा नहीं लगता)। मैं एक सही जवाब के बजाय यहाँ एक संकेत प्राप्त करना पसंद करूंगा, लेकिन मुझे यकीन नहीं था कि क्या यह स्टैक ओवरफ्लो के कड़े नियमों से दूर होगा। – jjj