/ / लूप के लिए रूबी सरणी मान देते समय निल वर्ग त्रुटि देता है - रूबी, सरणियां, लूप, फॉर-लूप

लूप के लिए रूबी सरणी मान निर्दिष्ट करते समय नील क्लास त्रुटि देता है - रूबी, सरणी, लूप, फॉर-लूप

मुझे एक समस्या है। मैं 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] }

अन्यथा, आपको बेहतर उदाहरण पोस्ट करना होगा यदि आप चाहते हैं कि लोग आपके लूप का निदान करें।