V tomto článku uvediem šikovné riešenia, ktoré uľahčia programátorom prácu s poľami (arrays) a to v podobe odstraňovania jedného alebo viacerých prvkov.
Ako prvý príklad uvediem spôsob, ako odstrániť prvok podľa indexu.
function removeItemByIndex(data, index) {
return data.filter((element, i) => i != index);
}
let data = ["a", "b", "c", "d", "e", "f", "g"];
console.log(data);
// ["a", "b", "c", "d", "e", "f", "g"]
data = removeItemByIndex(data, 3); // d
console.log(data);
// [ 'a', 'b', 'c', 'e', 'f', 'g' ]
data = removeItemByIndex(data, 2); // c
console.log(data);
// ['a', 'b', 'e', 'f', 'g']
V ďalšom príklade uvádzam spôsob ako odstrániť viacero prvkov podľa indexu.
function removeItemsByIndex(data, indices) {
return data.filter((element, i) => !indices.includes(i));
}
let data = ["a", "b", "c", "d", "e", "f", "g"];
console.log(data);
// ["a", "b", "c", "d", "e", "f", "g"]
data = removeItemsByIndex(data, [3, 4, 5]); // d, e, f
console.log(data);
// [ 'a', 'b', 'c', 'g' ]
Druhý spôsob mazania prvkov z poľa je podľa pozície v poli. Prvý príklad maže jeden prvok z poľa.
function removeItemByPosition(data, position) {
return data.filter((element, i) => i + 1 != position);
}
let data = ["a", "b", "c", "d", "e", "f", "g"];
console.log(data);
// ["a", "b", "c", "d", "e", "f", "g"]
data = removeItemByPosition(data, 4); // d
console.log(data);
// [ 'a', 'b', 'c', 'e', 'f', 'g' ]
data = removeItemByPosition(data, 3); // c
console.log(data);
// ['a', 'b', 'e', 'f', 'g']
Nasledujúci príklad maže viacero prvkov podľa pozície z poľa.
function removeItemsByPosition(data, positions) {
return data.filter((element, i) => !positions.includes(i + 1));
}
let data = ["a", "b", "c", "d", "e", "f", "g"];
console.log(data);
// ["a", "b", "c", "d", "e", "f", "g"]
data = removeItemsByPosition(data, [4, 5, 6]); // d, e, f
console.log(data);
// [ 'a', 'b', 'c', 'g' ]
Posledný spôsob mazania prvkov z poľa je cez ich názov. Opäť začnem zmazaním jedného prvku z poľa.
function removeItemByName(data, item) {
return data.filter((element) => element != item);
}
let data = ["a", "b", "c", "d", "e", "f", "g"];
console.log(data);
// ["a", "b", "c", "d", "e", "f", "g"]
data = removeItemByName(data, "d");
console.log(data);
// [ 'a', 'b', 'c', 'e', 'f', 'g' ]
data = removeItemByName(data, "c");
console.log(data);
// ['a', 'b', 'e', 'f', 'g']
V poslednom príklade mažem viacero prvkov podľa názvov z poľa.
function removeItemsByName(data, items) {
return data.filter((element) => !items.includes(element));
}
let data = ["a", "b", "c", "d", "e", "f", "g"];
console.log(data);
// ["a", "b", "c", "d", "e", "f", "g"]
data = removeItemsByName(data, ["d", "e", "f"]);
console.log(data);
// [ 'a', 'b', 'c', 'g' ]
Záver
Ak máte aj vy dáke zaujímavé riešenia na tému ako zmazať prvok z poľa, môžete ich uviesť do komentára. Okrem tohto prvého dielu som pripravil aj druhý diel. Tému som tak rozdelil do dvoch článkov. V druhom článku nevytváram nové pole, ale priamo pracujem s aktuálnym poľom.