Javascript(动态)插入数组,然后移动+1下面的所有元素

Faa*_*rtz 6 html javascript arrays

没有真正为Javascript找到解决方案.我需要的; 我想将一个元素插入一个数组,但不是真的覆盖该元素.而是一个"动态"插入.因此插入元素,然后将其下面的所有元素移动+1索引.

例如:

I have an array "14S" "16S" "19S".
I know want to insert "15S".
The resulting array: "14S" "15S" "16S" "19S"
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

  fullName = "15S"
  low = 5;
  cardsS[low] = fullName;
  for (var i = low; i < cardsS.length; i++) {
      cardsS[i + 1] = cardsS[i];
  }
Run Code Online (Sandbox Code Playgroud)

Bre*_*ola 16

如果您知道要将元素插入的位置:

使用拼接方法.它很便宜,工作方式与你想要的完全一样.您还可以一次插入多个元素:

var strings = ["14S", "16S", "19S"];
strings.splice(1,0,"15S");
Run Code Online (Sandbox Code Playgroud)

结果

"14S" "15S" "16S" "19S"
Run Code Online (Sandbox Code Playgroud)

如果您不希望以特定方式对数组进行排序,则还应使用此解决方案.

如果您不知道要将元素插入的位置:

您将不得不求助于/排序组合,提供您自己的排序算法(除非标准排序足够)

var strings = ["14S", "16S", "19S"];
strings.push("15S");
strings.sort(function(a, b){
    if (a is less than b by some ordering criterion)
        return -1;
    if (a is greater than b by the ordering criterion)
        return 1;
    // a must be equal to b
    return 0;
});
Run Code Online (Sandbox Code Playgroud)

  • 但是,ZenMaster 在对 Marc 的回答的评论中说,您必须知道要插入元素的位置。这取决于您要解决的问题。 (2认同)