মনে করি আমাদের কাছে একটা Multiple object এর একটা অ্যারে আছে, এবং প্রতিটি object পারসন এর ডাটা ধারন করছে। এখন এই প্রতিটি object থেকে প্রত্যেক পারসনের নাম দরকার।
এই কাজটি আমারা কয়েক ভাবে যেমন for() লুপ , forEach() লুপ , এবং for(of) লুপ ব্যবহার করে করতে পারি।
const person = [
{id: 1, name: 'Mr. A'},
{id: 2, name: 'Mr. B'},
{id: 3, name: 'Mr. C'},
{id: 4, name: 'Mr. D'}
]
let name = [];
person.forEach( function (data) {
name.push(data.name);
})
console.log( name ) // output: ["Mr. A", "Mr. B", "Mr. C", "Mr. D"]
এখন .forEach() লুপের পরিবর্তে .map() মেথড ব্যবহার করব।
let name = person.map( function(data){
return data.name;
})
console.log( name ) // output: ["Mr. A", "Mr. B", "Mr. C", "Mr. D"]
.map() মেথড কে আমরা arrow function এর মাধ্যমেও লিখতে পারব।
let name = person.map( data => {return data.name} ); // map() with arrow function
এখানে একটা কথা মনে রাখতে হবে, .map() মেথডটি অবশ্যই অ্যারে রির্টান করবে।
.filter() Method
const person = [
{id: 1, name: 'Mr. A'},
{id: 2, name: 'Mr. B'},
{id: 3, name: 'Mr. C'},
{id: 4, name: 'Mr. D'}
]
let name = person.filter( function( data ) {
return data.id > 3;
})
console.log( name ) // output: [{id: 4, name: "Mr. D"}]
.filter() এবং .map() মেথডের মধ্যে মূল পার্থক্য হচ্ছে, .filter() মেথডটি রির্টান করবে মূল অ্যারের একটি সাবসেট অ্যারে।
যেখানে .map() মেথডটি রির্টান করবে নতুন একটি অ্যাারে।