Равиши flatMap
Равиши flatMap
массиви нав бармегардонад, ки пас аз
татбиқ кардани коллбэк-и
дар параметри равиш мушаххасшуда ба ҳар як элементи массиви аслӣ сохта мешавад.
Дар назари аввал равиши flatMap
ба равиши map монанд аст, вале фарқи асосии он
дар он аст, ки он ҳамеша массиви якченакаро бармегардонад.
Синтаксис
let newArray = массив.flatMap(функция);
Намуна
Биёед массиви навро,
ба воситаи равиши flatMap ба даст орем:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Натиҷаи иҷрои код:
['a!', 'b!', 'c!']
Намуна
Биёед массиви навро аз массиви аслӣ, ки аз рақамҳо иборат аст, ба даст орем:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Натиҷаи иҷрои код:
[3, 4, 5, 6, 7]
Намуна
Биёед кӯшиш кунем, ки равиши
flatMap-ро ба массиве бо як
сатҳи фурукаштии аввал татбиқ кунем:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Пас аз иҷрои код мо мебинем, ки шароити функсия ба зэрмассив татбиқ шуданд, онро ба ҳамчун як элемент ҳисоб карда. Аз ин рӯ, истифодаи ин равиш дар массивҳои фурукашташуда маъно надорад:
[3, 4, 5, '4,52']
Намуна
Агар мо намехоҳем бо сатҳи фурукаштии массив шиғол кунем,
вале ҳамаи массивро якҷо кунем, параметри Infinity-ро истифода мебарем:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Натиҷаи иҷрои код:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Намуна
Биёед ба массив ду равишро татбиқ кунем:
flatMap ва map, ва дар параметри ҳарду равиш
функсияе мушаххас карда мешавад, ки массивро дученака мекунад:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('равиши map', res1);
console.log('равиши flatMap', res2);
Натиҷаи иҷрои код:
'равиши map' [[3], [6], [9], [12], [15], [18]]
'равиши flatMap' [3, 6, 9, 12, 15, 18]
Инчунин нигаред
-
равиши
flat,
ки массивро аз зэрмассивҳо бармегардонад