javascript - 在类型化数组中移动数据

标签 javascript

是否有任何 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/

相关文章:

javascript - 在其自己的 HTML 列中插入 Google Chart 而不会溢出其他列

发布 jQuery 时 JavaScript 数组被编码

javascript - setInterval 不调用带有参数的函数

javascript - 将 Dropzone.js 与其他字段集成到现有的 HTML 表单中

javascript - 使用 lambda 函数更新(添加)dynamodb

javascript - Angular 7,没有 NgModel 如何获取复选框状态(真/假)?

javascript - 如何创建动态 html 表单的创建 JSON 对象(表单元素)?

javascript - HTML5 Canvas 刷新时闪烁

javascript - 只调用一次 onkeyup 函数

javascript - 如何禁用多个滚动功能?