2014-08-29 67 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]; 
     } 
    } 
}