Ruby World 💎
In Ruby, I can get the specific range from an array like this;
>> myArray = ['a','b','c','d','e','f','g', 'h', 'i']
>> myArray[0..4]
=> ['a','b','c', 'd', 'e']
However, since I am not using Ruby
on this project and am using vanilla Javascript, I wonder how to achieve the same result.
Turns out that it's extremely easy to do !!!
Javascript World 🌈
You can use array.slice(begin [, end])
!!!
var myArray = ['a','b','c','d','e','f','g', 'h','i'];
var sliced = myArray.slice(0, 5); //will contain ['a', 'b', 'c','d', 'e']
Easy right.
If you notice, the last index is different from the Ruby
implementation.
This is because the last index is non-inclusive; to mimic ruby's behavior you have to increment the end
value.
So, in Ruby
;
myArray[m..n]
in Javascript
;
myArray.slice(m, n+1);
the second argument to slice in
Ruby
is the length, but inJavaScript
it is the index of the last element.
Other stuff
1) You can also pass a negative number, which selects from the end of the array:
var myArray = ['a','b','c','d','e','f','g', 'h','i'];
var lastThree = myArray.slice(-3); //g, h, i
2) If end
is omitted, slice
extracts through the end of the sequence (arr.length
).
var myArray = ['a','b','c','d','e','f','g', 'h','i'];
var noEndInSlice = myArray.slice(5); //f, g, h, i
which indicate that the
end
value is optional
The End
Top comments (0)