flatMap metodu
flatMap metody,
başlangyç massiwiniň her bir elementine
metodyň parametrinde görkezilen
kolbek ýerine ýetirilenden soň
ýaňy massiw dolandyrýar.
Ilkinji syn-da flatMap metodu
map metodyna meňzeş, ýöne onuň esasy tapawudy
hemişe bir ölçegli massiw dolandyrmagydyr.
Sintaksis
let newArray = massiw.flatMap(funksiýa);
Mysal
flatMap metodyny ulanyp,
ýaňy massiw alalyň:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Kodyň ýerine ýetiriliş netijesi:
['a!', 'b!', 'c!']
Mysal
Sanlardan ybarat başlangyç massiwinden ýaňy massiw alalyň:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Kodyň ýerine ýetiriliş netijesi:
[3, 4, 5, 6, 7]
Mysal
flatMap metodyny birinji derejeli
içine alnan massiwe goýberip synalyş görüň:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Kod ýerine ýetirilenden soň funksiýanyň şertleriniň işlenen massiwine bir element hökmünde hasaplanyp ýerine ýetirilendigini göreris. Şonuň üçin bu metodu içine alnan massiwlerde çagyrmagyň manygy ýokdur:
[3, 4, 5, '4,52']
Mysal
Eger içine alnan derejesi bilen gyzyklanmasak,
ýöne tutuş massiw birleşdirmek islesek, Infinity parametrini ulanyň:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Kodyň ýerine ýetiriliş netijesi:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Mysal
Massiwe iki metodu goýberip synalyş görüň:
flatMap we map, we iki metodynyň parametrinde
massiw iki ölçegli edýän funksiýa görkeziler:
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 metodu', res1);
console.log('flatMap metodu', res2);
Kodyň ýerine ýetiriliş netijesi:
'map metodu' [[3], [6], [9], [12], [15], [18]]
'flatMap metodu' [3, 6, 9, 12, 15, 18]
Şeýle-de göz aňyň
-
flatmetodu,
işlenen massiwlerden massiw dolandyrýar