2014-08-29 64 views
1

是否有任何本地方法在類型數組內移動數據?例如,如果我想從數組中的某處「移除」4個元素,然後在4個索引之後移動所有內容(如C中的memmove)。或者這將不得不用JavaScript寫?你認爲最快/有效的方法是什麼?在鍵入數組內移動數據

+0

http://www.w3schools.com/jsref/jsref_obj_array.asp在這裏,你會發現一系列完整的屬性和方法在JavaScript – 2014-08-29 04:17:02

+0

類型數組,而不是常規的陣列。 – pixelmike 2014-08-29 04:22:51

+0

你是什麼意思的類型數組?在javascript中沒有輸入數組。 – 2014-08-29 04:27:43

回答

1

那麼我已經瀏覽了我可以找到的文檔和規格,但據我所知,沒有任何方法可以在類型化數組內移動數據。這是我對「快速移動」功能的最佳猜測。您必須確保提供的範圍有效,但無論源索引位於目標之前還是之後,它都應該有效。

function taMove(a, iDst, iSrc, num) { 
    var i, j, k; 
    if(iDst < iSrc) { 
     // copy forward 
     for(i = iDst, j = iSrc, k = iDst + num; i < k; ++i, ++j) { 
      a[i] = a[j]; 
     } 
    } 
    else { 
     // copy backward 
     for(i = iDst+num-1, j = iSrc+num-1; i >= iDst; --i, --j) { 
      a[i] = a[j]; 
     } 
    } 
}