×
Creating solutions

Ako rýchlo vytvoriť funkciu map()

Rád sa učím z krátkych a výstižných kódov, ktoré dávajú nové inšpirácie a rovnako chcem prispieť aj ja svojimi príkladmi. Tentoraz som vytvoril metódu map(), ktorej úlohou je odfiltrovať polia o nežiadúce elementy. V demonštračnom príklade je takýmto elementom reťazec "c".
Príklad: Funkcia map().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var array = ["a", "b", "c", "d", "e", "f"];
function filterArray(item, index, array) {
// filtering items (elements), c is excluded
return item !== "c" ? true : false;
}
// my map() function
function map(arr, callback) {
var i = 0, length = arr.length, value = "", result = [];
var scope = arr;
for (i; i < length; i++) {
value = arr[i];
if (callback.call(scope, value, i, arr) === true) {
result.push(value)
}
}
return result;
}
var result = map(array, filterArray);
console.log(result.toString());
Tí, čo preferujú anonymné funkcie, môžu vyskúšať nasledujúci programový kód.
Príklad: Úprava volania funkcie map().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var array = ["a", "b", "c", "d", "e", "f"];
function map(arr, callback) {
var i = 0, length = arr.length, value = "", result = [];
var scope = arr;
for (i; i < length; i++) {
value = arr[i];
if (callback.call(scope, value, i, arr) === true) {
result.push(value)
}
}
return result;
}
var result = map(array, function(item, index, array) {
// filtering items, c is excluded
return item !== "c" ? true : false;
});
console.log(result.toString());
V praxi sa uvedený príklad s najväčšou pravdepodobnosťou neuchytí, keďže každý dobrý framework má už túto funkcionalitu podchytenú. No pre začínajúcich a mierne pokročilých programátorov môže byť tento kúsok kódu užitočný a môže pomôcť rozšíriť ich doterajšie znalosti.

Záver

V prípade, že ste sa nechali inšpirovať a funkciu ste vylepšili, podeľte sa o svoje výtvory prostredníctvom komentára.


JavaScript,programovanie,map,array,call
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest