से मेल खाता है मैं दो सरणियों है:Coffeescript: सरणी तत्व एक और सरणी
array1 = ["hello","two","three"]
array2 = ["hello"]
मैं array2 1 या अधिक array1 शब्द हैं अगर जाँच करना चाहते हैं।
मैं कॉफ़ीस्क्रिप्ट का उपयोग करके ऐसा कैसे कर सकता हूं?
से मेल खाता है मैं दो सरणियों है:Coffeescript: सरणी तत्व एक और सरणी
array1 = ["hello","two","three"]
array2 = ["hello"]
मैं array2 1 या अधिक array1 शब्द हैं अगर जाँच करना चाहते हैं।
मैं कॉफ़ीस्क्रिप्ट का उपयोग करके ऐसा कैसे कर सकता हूं?
इस कॉफीस्क्रिप्ट chapter का उपयोग करके दो सरणी के बीच छेड़छाड़ की जांच करने का एक तरीका मिला। कॉफीस्क्रिप्ट इस पर बहुत बढ़िया लग रहा है।
यदि तत्वों के चौराहे के बाद उत्पन्न सरणी में कम से कम एक आइटम होता है, तो दोनों सरणी में सामान्य तत्व होते हैं।
intersection = (a, b) ->
[a, b] = [b, a] if a.length > b.length
value for value in a when value in b
x = ["hello", "two", "three"]
y = ["hello"]
intersection x, y // ["hello"]
इसे here आज़माएं।
मैं अपने उदाहरण पर नजर एक समारोह is_in कर दिया है,:
array1 = ["hello","two","three"]
array2 = ["hello"]
is_in = (array1, array2) ->
for i in array2
for j in array1
if i is j then return true
console.log is_in(array1, array2)
चौराहे उदाहरण पर एक नज़र होने के बाद, मैं किसी अन्य तरीके से इस लक्ष्य को हासिल कर सकते हैं:
intersection = (a, b) ->
[a, b] = [b, a] if a.length > b.length
return true for value in a when value in b
array1 = ["hello","two","three"]
array2 = ["hello"]
console.log intersection(array1, array2)
पूर्व को समझना बहुत आसान है - अगर कोई दूसरा पोस्ट करने वाले चौराहे कोड के लिए कोई लाभ होता है तो यह देखने के लिए कोई jsPerf.com परीक्षण बनाना चाहता था, तो मैं उत्सुक होगा। – GregL
आप स्वयं जेएसपीआरएफ परीक्षण बना सकते हैं। दो 'टेस्ट टेस्ट' लिंक पर क्लिक करें और फिर वहां से संकलित जावास्क्रिप्ट कोड लें। उसके बाद 2 मामलों के साथ एक जेएसपीआरएफ बनाएँ। – alessioalex
आप कोशिश कर सकते हैं:
(true for value in array1 when value in array2).length > 0
contains = (item for item in array2 when item in array1)
(सरणियों रिवर्स array1
में डबल प्रविष्टियों को दिखाने के लिए)
सोचा मैं फेंक अपने ही coffeescript एक लाइनर पागलपन :-P
true in (val in array1 for val in array2)
बस मामले में किसी को यहां आता है और चौराहे के विपरीत अंतर की तलाश कर रहा है
difference = (val for val in array1 when val not in array2)
यह आपको एक सरणी दे देंगे array1 में (अंतर) सभी मानों का लेकिन में नहीं array2
हममम, मैं काफी पहली पंक्ति से उलझन में हूँ, और CoffeeScript के मुख्य लाभ में से एक था जेएस की स्पष्टता और पठनीयता में वृद्धि की जानी चाहिए, है ना? शायद यह कुछ कोड का मामला है जो चालाक-जटिल है, और इसका उपयोग केवल तभी किया जाना चाहिए जब यह वास्तव में अधिक कुशल है कि @alessioalex की स्पष्ट कोड प्रदान की गई है। – GregL
@ ग्रेगेल - क्या आपका मतलब यह लाइन है - 'चौराहे = (ए, बी) -> '? – Anurag
क्षमा करें, नहीं, मेरा मतलब रेखा # 2 है, जो चौराहे समारोह की पहली पंक्ति है। मैंने पहली पंक्ति को पढ़ने में सक्षम होने के लिए अभी तक पर्याप्त सीएस वाक्यविन्यास सीखा है। :-) यह और भी है कि मुझे समझ में नहीं आता कि यह पंक्ति "काम करती है"। – GregL