Mis*_*rul 1 ruby arrays string integer
我有一个id号的数组(技术上是一个字符串).
ids = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
Run Code Online (Sandbox Code Playgroud)
我想将id组成一个如下所示的数组:
ids = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
我发现这样做的唯一方法是使用地图.
id_numbers = ids.split(/,\s?/).map(&:to_i)
Run Code Online (Sandbox Code Playgroud)
但是,这会丢弃数组中的第一个数字并将其替换为0.
id_numbers = [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法将字符串数组转换为常规数组?
由于这实际上是JSON格式,答案很简单:
require 'json'
id_json = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
ids = JSON.load(id_json)
Run Code Online (Sandbox Code Playgroud)
你的解决方案"丢掉"第一个数字的原因是因为你分裂的方式.你系列中的第一个"数字"实际上"[1"是Ruby不是一个数字,因此它默认转换为0.