【问题标题】:How to push to an array in a particular position?如何推送到特定位置的数组?
【发布时间】:2012-02-03 23:39:59
【问题描述】:

我正在尝试有效地编写一个语句,该语句将推送到数组的位置 1,并将该位置中的任何内容或之后的内容推送回一个位置。

array = [4,5,9,6,2,5]

#push 0 to position 1

array = [4,0,5,9,6,2,5]

#push 123 to position 1

array = [4,123,0,5,9,6,2,5]

写这个的最好方法是什么? (可以接受javascript或coffeescript)

谢谢!

【问题讨论】:

标签: javascript arrays coffeescript


【解决方案1】:
array = [4,5,9,6,2,5]

#push 0 to position 1
array.splice(1,0,0)

array = [4,0,5,9,6,2,5]

#push 123 to position 1
array.splice(1,0,123)

array = [4,123,0,5,9,6,2,5]

【讨论】:

  • 注意: splice 返回一个由已删除 元素组成的数组。在这些示例中,没有删除任何元素,因此console.log(array.splice(1,0,123)) 将返回[]。应该有 RTFM
【解决方案2】:

要在数组中的特定索引处推送任何项目,请使用以下语法

// The original array
var array = ["one", "two", "four"];
// splice(position, numberOfItemsToRemove, item)
array.splice(2, 0, "three");

console.log(array);  // ["one", "two", "three", "four"]

【讨论】:

    【解决方案3】:

    splice() 函数是唯一允许您将元素添加到数组特定位置的原生数组函数

    我会得到一个你在问题中输入的数组来描述

    splice(position, numberOfItemsToRemove, item)
    
    • position = 您要添加新项目的位置是什么
    • numberOfItemsToRemove = 这表示将删除多少个项目。那是 表示删除将根据新项目添加的位置开始。

    Ex = 如果您想在 123 中添加 1 个位置,结果将是这样的 ([4,123,0,5,9,6,2,5]) 但是如果您将numberOfItemsToRemove 设置为 1,它将在 123 如果你给 2 那么它在 123 之后删除两个元素。

    • item = 您添加的新项目

    function my_func(){
            var suits = [4,0,5,9,6,2,5]
            
            suits.splice(1 , 0 , 123);
    
            document.getElementById('demo').innerHTML = suits;
    }
    <p id="demo">4,0,5,9,6,2,5</p>
    <button id="btn01" onclick="my_func()">Splice Array</button>

    【讨论】:

      【解决方案4】:

      你能不能这样做:

      myArray[idx] = foo;
      

      您需要有一个大小合适的数组,但我不确定在没有请求索引的列表上拼接的行为是什么。

      【讨论】:

      • 啊,我刚刚意识到如果你想保留数组中的其他元素,拼接效果非常好。呵呵。
      猜你喜欢
      • 1970-01-01
      • 2020-05-12
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多