JavaScript 中的数组(用于插入和删除)是否有其他替代方法来优化性能

kar*_*sys 0 javascript arrays algorithm data-structures

我是 JavaScript 新手,我使用诸如插入和删除元素之类的操作。数组不擅长插入和删除操作。除了 JavaScript 中的 Array 之外,还有其他方法可以执行这些操作吗?就像我们在 Java 中有 ArrayList 一样。

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);
}
Run Code Online (Sandbox Code Playgroud)
<body onload="maintest()">
  <div id="mainDiv"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 8

数组是 JavaScript 唯一的内置有序容器类型(好吧,几乎;继续阅读)。标准库中没有“列表”,但创建一个并不难;任何标准的“链表”算法都可以在 JavaScript 中轻松实现。JavaScript 中的数组本质上是稀疏的,并且对非稀疏数组进行单独的数组操作非常快,因此发现您专门需要一个“列表”类的情况并不常见。

根据您的用例,您可能会发现以下其中一项很方便:

  • 具有命名属性而不是数字索引的对象。
  • A Map,将键映射到值。键和值可以是任何类型。
  • A Set,这是一唯一值。值可以是任何类型。

除此之外,如果搜索出现一些您可以使用的预构建“列表”类,我不会感到惊讶。