javascript - nodejs的列表不能往中間插入資料嗎?
某草草
某草草 2017-05-16 13:43:43
0
4
600

Python中的清單可以在中間位置插入資料:

>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a.insert(3,10)
>>> a
[1, 2, 3, 10, 4, 5, 6, 7]

但是nodejs中好像沒有insert函數,刪除中間的元素也不徹底,

> a= [1, 2, 3, 4, 5, 6]
[ 1,
  2,
  3,
  4,
  5,
  6 ]
> delete a[2]
true
> a
[ 1,
  2,
  ,
  4,
  5,
  6 ]
  1. 如果希望刪除a[2]後得到新的列表為[1,2,4,5,6,7],應該怎麼做?

  2. 如果希望在第3個位置後插入資料10,得到[1,2,3,10,4,5,6],該怎麼做?

某草草
某草草

全部回覆(4)
伊谢尔伦

雷雷

滿天的星座

樓上正解

a.splice(2,1); //从a数组中第3个元素(下标2)开始删除,删掉一个。 这时a数组会发生变化
a.splice(3,0,10);  //从a数组中第4个(下标3)元素开始删除,删除0个, 并把10插入到这个元素之前。

附splice用法

splice() 方法向/從陣列中新增/刪除項目,然後傳回已刪除的項目。
註解:此方法會改變原始陣列。

文法

arrayObject.splice(index,howmany,item1,.....,itemX)
  • index 必需。整數,規定新增/刪除項目的位置,使用負數可從陣列結尾規定位置。

  • howmany 必需。要刪除的項目數量。如果設定為 0,則不會刪除項目。

  • item1, ..., itemX 可選。向數組新增的新項目。

回傳值
Array 包含被刪除項目的新數組,如果有的話。

說明
splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數清單中宣告的一個或多個值來取代那些被刪除的元素。
如果從 arrayObject 中刪除了元素,則傳回的是含有已刪除的元素的陣列。

習慣沉默

開來樓主還不知道splice的強大。 splice(start,deleteCount,val1,val2,...):從start位置開始刪除deleteCount項,並從該位置起插入val1,val2,... 可以自行擴充Array的原型方法:

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

這樣你就熟悉了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板