मुझे एक समस्या है। मैं Google स्केचअप के लिए एक प्लग कोडिंग कर रहा हूं और मैं सरणी मान को फ़िल्टर करने और फ़िल्टर किए गए मानों को किसी अन्य सरणी में रखने का प्रयास कर रहा हूं। यह इस प्रकार किया जाता है:
for z in 0..points.length
points2[z]=points[z][1]
end
जहां "अंक" एक डबल सरणी है। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूँ?
उत्तर:
उत्तर № 1 के लिए 4यह बेहतर होना चाहिए:
points2 = points.map {|p| p[1]}
जवाब के लिए 2 № 2
आप जो गलत कर रहे हैं, वह एक बार बहुत ज्यादा हो रहा है। नकली डेटा का उपयोग करना:
ar = [1,2,3]
ar2 = []
for z in 0..ar.length
#off by one! Should be one less. But then you should test for empty arrays...
ar2[z] = ar[z]
end
p ar2 #[1, 2, 3, nil]
दूसरे जवाब देते हैं map
और वे सही हैं, लेकिन आप फॉर-लूप को कम त्रुटि वाले में बदल सकते हैं -
for z in ar
ar2 << z
end
उत्तर № 3 के लिए 1
आप क्या गलत कर रहे हैं? का प्रशंसक for
लूप जो मैं हूं, आपको कार्यात्मक शैली का उपयोग करना चाहिए, उर्फ। रूबी तरीका:
points2 = points.map { |element| element[1] }
अन्यथा, आपको बेहतर उदाहरण पोस्ट करना होगा यदि आप चाहते हैं कि लोग आपके लूप का निदान करें।