Есть ли альтернатива массиву в JavaScript (для вставки и удаления) для оптимизации производительности - PullRequest
0 голосов
/ 13 февраля 2020

Я новичок в JavaScript, я использую такие операции, как вставка и удаление элементов. Массивы не подходят для операций вставки и удаления. Есть ли альтернатива, кроме Array в JavaScript для выполнения этих операций? Как у нас есть ArrayList в Java.

function maintest() {
  deletelem(3);
  insertelem(9845568);
 
}

function deletelem( num ) {
  var value = num;
  var arr = [1, 2, 3, 4, 5, 3]
  arr = arr.filter(function(item) {
      return item !== value
  })
  console.log(arr);
}


function insertelem( num ) {
var value = num;

  var arr = [1, 2, 3, 4, 5, 3]

  arr.splice(2, 0, num);
  console.log(arr);
}
<body onload="maintest()">
  <div id="mainDiv"></div>
</body>

1 Ответ

8 голосов
/ 13 февраля 2020

Массивы являются JavaScript только встроенными типами упорядоченных контейнеров (ну, почти; продолжайте читать). В стандартной библиотеке нет «списка», хотя создать его не составит труда; любой из стандартных алгоритмов «связанного списка» легко реализуется в JavaScript. Массивы в JavaScript по своей природе являются разреженными, и операции с массивами по отдельности над не разреженными массивами выполняются очень быстро, поэтому не часто бывает так, что вам нужен именно класс "list".

В зависимости от вашего варианта использования, Вы можете найти один из этих полезных:

  • Объект с именованными свойствами, а не номерами c индексов.
  • A Map, который отображает ключи к ценностям. Ключи и значения могут быть любого типа.
  • A Set, то есть набор уникальных значений. Значения могут быть любого типа.

Кроме этого, я не удивлюсь, если при поиске будут найдены некоторые готовые «списочные» классы, которые вы можете использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...