
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Get range of months from array based on another array JavaScript
Suppose we have two arrays of strings. The first array contains exactly 12 strings, one for each month of the year like this −
const year = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
The second array, contains exactly two strings, denoting a range of months like this −
const monthsRange = ["aug", "oct"];
We are required to write a JavaScript function that takes in two such arrays. Then the function should pick all the months from the first array that falls in the range specified by the second range arrays.
Like for the above arrays, the output should be −
const output = ['aug', 'sep'];
Note that we omitted the closing element of the range ('oct') in the output, its a part of the functionality.
Example
const year = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']; const range = ['aug', 'dec']; const getMonthsInRange = (year, range) => { const start = year.indexOf(range[0]); const end = year.indexOf(range[1] || range[0]); // also works if the range is reversed if (start <= end) { return year.slice(start, end); } else { return year.slice(start).concat(year.slice(0, end)); }; return false; }; console.log(getMonthsInRange(year, range));
Output
And the output in the console will be −
[ 'aug', 'sep', 'oct', 'nov' ]
- Related Articles
- Sorting Array based on another array JavaScript
- Sort array based on another array in JavaScript
- Filter array based on another array in JavaScript
- Modify an array based on another array JavaScript
- Sort object array based on another array of keys - JavaScript
- Order an array of words based on another array of words JavaScript
- Creating an array of objects based on another array of objects JavaScript
- Filter an array containing objects based on another array containing objects in JavaScript
- Querying array of Embedded Documents in MongoDB based on Range?
- Build maximum array based on a 2-D array - JavaScript
- Reorder array based on condition in JavaScript?
- How to filter an array from all elements of another array – JavaScript?
- Search and update array based on key JavaScript
- Filter an object based on an array JavaScript
- Shuffling string based on an array in JavaScript

Advertisements