1 min read

JavaScript'te Belirli Bir Öğeyi Diziden Nasıl Kaldırabilirim?

javascript-cpynet

Bir diziden kaldırmak istediğiniz öğenin indeksini indexOf kullanarak bulabilir ve ardından bu indeksi splice ile kaldırabilirsiniz.

splice() metodu, mevcut öğeleri kaldırarak ve/veya yeni öğeler ekleyerek bir dizinin içeriğini değiştirir.

Aşağıda basit bir örnek verilmiştir:

const array = [2, 5, 9];

console.log(array); // [2, 5, 9]

const index = array.indexOf(5);
if (index > -1) { // öğe bulunduğunda diziyi yalnızca spliceliyoruz
  array.splice(index, 1); // 2. parametre yalnızca bir öğe kaldırmayı belirtir
}

// array = [2, 9]
console.log(array); // [2, 9]

splice metodunun ikinci parametresi, kaldırılacak öğe sayısını belirtir. Dikkat edin ki splice diziyi yerinde değiştirir ve kaldırılan öğeleri içeren yeni bir dizi döner.

Tamamlayıcılık açısından, iki işlev aşağıda verilmiştir. İlk işlev yalnızca bir kez bulunan bir öğeyi (örneğin, [2, 5, 9, 1, 5, 8, 5] dizisinden 5'in ilk eşleşmesini) kaldırırken, ikinci işlev tüm eşleşmeleri kaldırır:

function removeItemOnce(arr, value) {
  var index = arr.indexOf(value);
  if (index > -1) {
    arr.splice(index, 1);
  }
  return arr;
}

function removeItemAll(arr, value) {
  var i = 0;
  while (i < arr.length) {
    if (arr[i] === value) {
      arr.splice(i, 1);
    } else {
      ++i;
    }
  }
  return arr;
}

// Kullanım
console.log(removeItemOnce([2, 5, 9, 1, 5, 8, 5], 5)); // [2, 9, 1, 5, 8, 5]
console.log(removeItemAll([2, 5, 9, 1, 5, 8, 5], 5)); // [2, 9, 1, 8]

TypeScript'te, bu işlevler bir tür parametresi ile tür güvenliğini koruyabilir:

function removeItem<T>(arr: Array<T>, value: T): Array<T> { 
  const index = arr.indexOf(value);
  if (index > -1) {
    arr.splice(index, 1);
  }
  return arr;
}

Bu şekilde, JavaScript veya TypeScript kullanarak diziden belirli öğeleri kaldırmayı kolayca gerçekleştirebilirsiniz.