我有问题。我正在为Google Sketchup编写一个插件,我正在尝试过滤掉数组值并将过滤后的值放入另一个数组中。这是这样做的:
for z in 0..points.length
points2[z]=points[z][1]
end
其中“points”是双数组。有人可以告诉我我做错了吗?
答案 0 :(得分:4)
这应该更好:
points2 = points.map {|p| p[1]}
答案 1 :(得分: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-loop转换为一个不那么容易出错的人:
for z in ar
ar2 << z
end
答案 2 :(得分:1)
你做错了什么?我是for
循环的粉丝,你应该使用功能风格,又名。 Ruby方式:
points2 = points.map { |element| element[1] }
否则,如果您希望人们诊断您的for循环,则必须发布更好的示例。