是否有任何 native 方法可以在类型化数组中移动数据?例如,如果我想从数组中的某个位置“删除”4 个元素,然后将所有内容移至 4 个索引后(如 C 中的 memmove)。或者这必须用 JavaScript 编写?您认为最快/最有效的方法是什么?
最佳答案
我已经浏览了我能找到的文档和规范,但据我所知,没有任何方法可以在类型化数组中移动数据。这是我对“快速移动”功能的最佳猜测。您必须确保提供的范围有效,但无论源索引在目标之前还是之后,它都应该有效。
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];
}
}
}
关于javascript - 在类型化数组中移动数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25561527/