12

我刚刚完成了第1节,注意到没有介绍如何将项推送到数组的特定位置的方法。例如,如果我想让数组显示

var suits=[“红心”,“梅花”,“布鲁克斯兄弟”,“钻石”,“黑桃”]

我如何才能将“Brooks Brothers”推入阵列套装的位置[2],并将其余的1个向下移动?javascript中是否有一个类似push的内置函数可以让我这样做?

我想我总是可以,尽管有些困难:

功能添加(项目、位置){var长度=套装长度;对于(i=长度-1;i>=位置;i--){套装[长度]=套装[i];长度--;};套装[位置]=物品;};add(“布鲁克斯兄弟”,2)//将其添加到中间
2
  • 这似乎是Javascript,而不是Java(或PHP)。
    – 卡亚曼
    评论 2018年1月8日6:46
  • 您想插入元素或交换。。。。? 评论 2018年1月8日7:01

4个答案4

重置为默认值
32

JavaScript中没有为此内置的函数,但您可以使用剪接

var suits=[“红心”,“梅花”,“布鲁克斯兄弟”,“钻石”,“黑桃”];suits.splice(2,0,“Brooks Brothers”);console.log(套装);

这将把项目X插入阵列套装的索引2,[“红心”、“梅花”、“布鲁克斯兄弟”、“布鲁斯兄弟”,“钻石”、“黑桃”]

语法

<阵列名称>.拼接(<位置到插入项>,0,<项-1>,<项-2>,..,<项-n>)

始终将第二个参数作为0传递,因为我们不想删除拼接时数组中的任何项。

  • 1
    >“JavaScript中没有内置的函数”——我认为这是一个错误的说法,因为剪接 JS中的一个内置函数,它确实执行所要求的操作;正确的? 评论 2022年7月20日19:05
  • 1
    OP想将一个新项推送到数组的中间。没有专门用于此目的的内置功能。可以使用拼接,但我们必须指定插入项目的位置。
    – 代码It
    评论 2022年7月21日16:59
  • 1
    “……并注意到没有介绍如何将项推送到数组的特定位置的方法”。指定插入位置正是问题所在拼接(idx,0,elem)确实如此。你有OP所需要的,没有但是。😉 评论 2022年7月23日1:31
15

你可以使用排列拼接以便将项插入到特定位置的数组中。

const suits=[“红心”、“梅花”、“布鲁克斯兄弟”、“钻石”、“黑桃”];suits.splice(2,0,'newItem');console.log(套装);

6

您可以使用内置剪接功能

这个拼接()方法通过删除现有元素和/或添加新元素来更改数组的内容。

1-插入单个值

var suits=[“红心”,“梅花”,“布鲁克斯兄弟”,“钻石”,“黑桃”];//第一个参数是insert index=2表示在索引2处插入//第二个参数是delete item count=0表示删除0个元素//第三个参数是要插入的新项适用于拼接(2,0,“测试”);console.log(套装);

2-将数组插入suits数组

var suits=[“红心”,“梅花”,“布鲁克斯兄弟”,“钻石”,“黑桃”];var newSuitsToInsert=[“test1”,“test2”,“hello”];//第一个参数是insert index=2表示在索引2处插入//第二个参数是delete item count=0表示删除0个元素//第三个参数是要插入的新项//... 是将元素展开为一个元素的扩展语法suits.splice(2,0,…newSuitsToInsert);console.log(套装);

0
2

你应该使用剪接功能

arr.splice(索引,0,项);将在指定索引处向arr中插入项(首先删除0项,也就是说,它只是一个插入)。

var suits=[“红心”,“梅花”,“布鲁克斯兄弟”,“钻石”,“黑桃”]suits.splice(2,0,“somevalue”);console.log(套装);

0