Hello my fellow frontend developer friends, today i will be discussing array methods on steroids. You must buckle your seatbelt as this journey is going to be a bit long.
- I'll be creating my code snippets on Scribbler.live first, which is a fantastic platform that allows you to run a JavaScript Notebook, Online Compiler, and Editor without the need for manual setup.
- Additionally, I'll be including a link to code snippets that includes all of the code examples so you can open the snippet and run it yourself to see the results.
- i will be using
scrib.show
from scribbler.live, it is equivalent toconsole.log
Let's dive in.
Table of contents
Non Mutating methods
These methods doesn't modifies the original array itself but creates a new array for the result, these includes:
-
filter
- filters an array based on a callback function -
map
- map over the array based on a callback function -
slice
- extract out a part of the array -
concat
- merge 2 arrays -
flat
- flatten the multi-dimensional or nested arrays -
flatMap
- flatten the multi-dimensional or nested arrays by 1 level and does the mapping with a callback function with it.
Sample code
const technologies = [
{
name:"HTML",
type:"Frontend"
},
{
name:"CSS",
type:"Frontend"
},
{
name:"JS",
type:"Frontend"
},
{
name:"React",
type:"Frontend"
},
{
name:"Java",
type:"Backend"
},
{
name:"Node",
type:"Backend"
},
]
const otherTechnologies = [
{
name:"Python",
type:"Backend"
},
{
name:"Rust",
type:"Backend"
},
]
// filter method
const frontendTechs = technologies.filter(technology => {
if(technology.type === "Frontend"){
return technology
}
})
scrib.show("Frontend techs - ",frontendTechs) // will return an array with items with type Frontend
// map method
const frontendTechsNames = frontendTechs.map(technology => technology.name) // will return an array with technology names with type Frontend
scrib.show("Frontend tech names - ",frontendTechsNames) // will return an array with items with type Frontend
// slice method
const firstThreeItems = technologies.slice(0,3) // first three items in the array
scrib.show("First three items - ",firstThreeItems)
// concat method
const combinedTechnologies = technologies.concat(otherTechnologies)
scrib.show("Combined technologies - ",combinedTechnologies)
// flat method
const nestedArrays = ["HTML","CSS","JS",["REACT","NEXTJS", ["TAILWIND",["SCSS"]]]]
const oneLevelFlat = nestedArrays.flat()
const twoLevelFlat = nestedArrays.flat(2)
const infinityLevelFlat = nestedArrays.flat(Infinity)
scrib.show(oneLevelFlat)
scrib.show(twoLevelFlat)
scrib.show(infinityLevelFlat)
// flatMap method
const webTechnologies = ["HTML","CSS","JS"]
const flatAndLowercase = webTechnologies.flatMap(technology => technology.toLowerCase())
scrib.show(flatAndLowercase)
Chaining of methods
// Chaining of methods
const technologies = [
{
name:"HTML",
type:"Frontend"
},
{
name:"CSS",
type:"Frontend"
},
{
name:"JS",
type:"Frontend"
},
{
name:"React",
type:"Frontend"
},
{
name:"Java",
type:"Backend"
},
{
name:"Node",
type:"Backend"
},
]
// Filter and map
const frontendNamesByChaining = technologies.filter(technology => technology.type === "Frontend").map(technology => technology.name)
scrib.show(frontendNamesByChaining)
// flat and map
const nestedArrays = ["HTML","CSS","JS",["REACT","NEXTJS", ["TAILWIND",["SCSS"]]]]
const flatAndMapChaining = nestedArrays.flat(Infinity).map(technology => technology.toLowerCase())
scrib.show(flatAndMapChaining)
Checkout this embed to run the code example mentioned above
That's it for this post, Let me know if i could do any improvements in this article. Also, do check Scribbler.live website.
You can contact me on -
Instagram - https://www.instagram.com/supremacism__shubh/
LinkedIn - https://www.linkedin.com/in/shubham-tiwari-b7544b193/
Email - shubhmtiwri00@gmail.com
You can help me with some donation at the link below Thank you👇👇
https://www.buymeacoffee.com/waaduheck
Also check these posts as well

Button Component with CVA and Tailwind
Shubham Tiwari ・ Feb 12 '24

Top comments (0)