arrays - javascript - jQuery array remove - 배열에서 특정 항목을 제거하려면 어떻게해야합니까?

자바스크립트 array push / javascript

숫자 배열이 있고 .push() 메서드를 사용하여 요소를 추가하고 있습니다.

다음과 같은 것을 찾고 있습니다.

array.remove(number);

Melanie



Answer #1

indexOf 또는 splice 를 사용할 필요가 없습니다 . 그러나 요소의 발생을 하나만 제거하려는 경우 더 나은 성능을 발휘합니다.

찾기 및 이동 (이동) :

function move(arr, val) {
  var j = 0;
  for (var i = 0, l = arr.length; i < l; i++) {
    if (arr[i] !== val) {
      arr[j++] = arr[i];
    }
  }
  arr.length = j;
}
function indexof(arr, val) {
  var i;
  while ((i = arr.indexOf(val)) != -1) {
    arr.splice(i, 1);
  }
}
function splice(arr, val) {
  for (var i = arr.length; i--;) {
    if (arr[i] === val) {
      arr.splice(i, 1);
    }
  }
}

indexof는 이동보다 약 ​​10 배 느립니다. splice 에서 indexOf 에 대한 호출을 제거하여 개선하더라도 이동보다 성능이 훨씬 더 나쁩니다.

indexof는 이동보다 약 ​​10 배 느립니다. splice 에서 indexOf 에 대한 호출을 제거하여 개선하더라도 이동보다 성능이 훨씬 더 나쁩니다.

Remove all occurrences:
    move 0.0048 ms
    indexof 0.0463 ms
    splice 0.0359 ms

Remove first occurrence:
    move_one 0.0041 ms
    indexof_one 0.0021 ms