为了账号安全,请及时绑定邮箱和手机立即绑定

如何将项插入特定索引(JavaScript)的数组中?

如何将项插入特定索引(JavaScript)的数组中?

ITMISS 2019-06-03 16:51:05
如何将项插入特定索引(JavaScript)的数组中?我正在寻找JavaScript数组插入方法,其样式为:arr.insert(index, item)最好是在jQuery中,但是任何JavaScript实现都可以。
查看完整描述

4 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以实现Array.insert方法这样做:

Array.prototype.insert = function ( index, item ) {
    this.splice( index, 0, item );};

然后你可以像这样使用它:

var arr = [ 'A', 'B', 'D', 'E' ];arr.insert(2, 'C');// => arr == [ 'A', 'B', 'C', 'D', 'E' ]


查看完整回答
反对 回复 2019-06-03
?
GCT1015

TA贡献1827条经验 获得超4个赞

除了剪接之外,您还可以使用这种方法,它不会对原始数组进行变异,而是使用添加的项创建一个新数组。你通常应该尽可能避免突变。我在这里用ES6传真机。


const items = [1, 2, 3, 4, 5]


const insert = (arr, index, newItem) => [

  // part of the array before the specified index

  ...arr.slice(0, index),

  // inserted item

  newItem,

  // part of the array after the specified index

  ...arr.slice(index)

]


const result = insert(items, 1, 10)


console.log(result)

// [1, 10, 2, 3, 4, 5]

这可以通过稍微调整函数以使用REST运算符来添加多个项,并在返回的结果中进行扩展。


const items = [1, 2, 3, 4, 5]


const insert = (arr, index, ...newItems) => [

  // part of the array before the specified index

  ...arr.slice(0, index),

  // inserted items

  ...newItems,

  // part of the array after the specified index

  ...arr.slice(index)

]


const result = insert(items, 1, 10, 20)


console.log(result)

// [1, 10, 20, 2, 3, 4, 5]


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 1380 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信