ruby - Replace elements in an array whose indexes do not match the given indexes -
i have next 2 variables:
array = ['h','e','l','l','o'] string = '023' all elements in array not have indexes matching someplace in string need replaced underscores. new array should this: ['h','_','l','l','_'].
i thinking of doing this
.map.with_index |e,i| if (i != string) #somehow check entire string e = '_' end end array = ['h','e','l','l','o'] string = '023'
surely, first step convert string array of indices, way should stored in first place, in part allow utilize of indices greater nine:
indices = string.each_char.map(&:to_i) #=> [0, 2, 3] once done, there umpteen ways replacements. assuming array not mutated, here's straightforward way:
indices.each_with_object([?_]*array.size) { |i,arr| arr[i] = array[i] } #=> ["h", "_", "l", "l", "_"] if prefer, these 2 lines combined:
string.each_char.map(&:to_i).each_with_object([?_]*array.size) |i,arr| arr[i] = array[i] end alternatively,
string.each_char.with_object([?_]*array.size) |c,arr| = c.to_i arr[i] = array[i] end ruby arrays indexing
No comments:
Post a Comment