NodeJS中的高效深度复制
Efficient Deep copy in NodeJS
我想在 NodeJS 中深度复制一个整数数组。我尝试的第一种方法是
obj2 = JSON.parse(JSON.stringify(obj1));
但是,它是如此缓慢,因为它是一个大数组。
现在我正在使用
var l = obj1.length;
while (l--){
obj2.push(obj1[l]);
}
虽然它要快得多,但我想知道是否有更好的解决方案?谢谢大家!
如果它是一个数组,你试过吗
var arr2 = arr1.slice(0);
它确实创建了一个浅拷贝,但对于只包含原始整数的数组来说,这无关紧要。
你也可以让它像
var arr = [1,2,3,4,5,6,7,8],
brr = arr.map(e => e);
如果你的数组只包含数字(如果你的数组包含数组,它不起作用),你可以使用不带参数Array.prototype.slice
函数
var arr1 = [1, 2, 3, 4, 5];
var arr2 = arr1.slice();
如果您需要获取排序数组并保存有关原始数组中元素位置的信息:
0) 原始数组:
var obj1 = [1, 2, 3, 100, 5, 0, 200, 30];
1)必须保持原位:
var index = Object.keys( obj1 ).sort( function(a, b) {
return obj1[a] - obj1[b];
});
// >> ["5", "0", "1", "2", "4", "7", "3", "6"]
2) 获取排序数组:
var obj2 = obj1.sort( function(a, b) {
return a-b;
});
// >> [0, 1, 2, 3, 5, 30, 100, 200]
3) 找到具有新索引 '0' 的元素的原始位置:
var originalIndex = index[0];
// >> "5"
相关文章:
- 使用Clipboard.js复制span文本
- ZeroClipboard-在复制之前添加到值
- 如何对映射插件创建的敲除对象进行深度复制
- NodeJS中的高效深度复制
- javascript中嵌套对象的深度复制数组
- lodash:深度复制对象,但不是所有属性
- 用javascript将一个对象数组复制到另一个数组中(深度复制)
- 在 Angular 2 + TypeScript 中深度复制数组
- 在 Javascript 中,在执行深度复制时,由于属性为“this”,我如何避免循环
- Angular.copy() 不是深度复制引用的数组
- javascript对象的深度克隆/复制
- 如何防止jQuery扩展深度副本复制我的一些自定义属性
- Ecma6,Object.assign 不做深度复制
- 结构化克隆算法与深度复制算法有何不同?
- 如何在javascript中深度复制对象作为对象而不是数组
- 如何在深度复制时深层复制闭合对象(私有对象)
- 如何在JavaScript中深度复制自定义对象
- 如何在javascript中进行深度复制
- 使用 Array.prototype.slice() 深度复制数组
- 深度复制可观察数组