How to Get Values From Array With Specific Range in Javascript
Amirul Asyraf
Posted on July 1, 2021
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
Posted on July 1, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.