正在类型化数组中移动数据

Moving data within Typed Arrays

本文关键字:移动 数据 数组 类型化      更新时间:2023-09-26

是否有任何本地方法可以在类型化数组中移动数据?例如,如果我想从数组中的某个位置"移除"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];
        }
    }
}