I have this array:
var array1 = ['9/2022','7/2020','11/2021','12/2020','2/2020','4/2021','10/2021'];
How can I get the years from it in order? So the result would be this:
result = ['2020','2021','2022'];
Do I have to change the array to a new Date() format and sort, or how would be the best way ? Any Suggestion ?
Using a combination of ... , Set , .map() and .sort(). This can be done in one line.
... -> destructures array into individual items.
new Set() -> make a set out of the new items.
map() -> runs a loop and map the array into a new one.
split() -> breaks a string into array.
sort() -> sorts an array.
var array1 = ['9/2022','7/2020','11/2021','12/2020','2/2020','4/2021','10/2021'];
console.log([...new Set(array1.map(x => x.split('/')[1]))].sort());
simply you can use map method to iterate over your array and then get every element and split them or separate them using Regex.
const array1 = ['9/2022','7/2020','11/2021','12/2020','2/2020','4/2021','10/2021'];
// separate each data into month and year and get the years in the result array
const result = array1.map(data => data.split("/")[1])
// make years uinque with this simple hack
const uniqueResult = [...new Set(result)]
// now you can sort your the data
const sortedUniqueResult = uniqueResult.sort((a, b) => a - b)
console.log(sortedUniqueResult)
You can also use javascript methods chaining to convert the above snippet into one line of code:
const array1 = ['9/2022','7/2020','11/2021','12/2020','2/2020','4/2021','10/2021'];
const result = [...new Set(array1.map(data => data.split("/")[1]).sort((a, b) => a - b))]
console.log(result)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With