Ember copy array
来源:互联网 发布:宏杰软件 编辑:程序博客网 时间:2024/06/04 23:21
Ember 不支持深度Copy
var dpItemDataCopy = Ember.makeArray(dpItemData); console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links); delete dpItemDataCopy[0].links; console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links);
console的结果简略给出
Object Object undefinedundefined
我只删除Copy后数组第一个Object的links,但原始数组的第一个Object的links也被删除掉;
var dpItemDataCopy = Ember.makeArray(dpItemData); console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links); delete dpItemDataCopy[0].links; console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links);
既然copy不管用,换makeArray试试,但是结果还是一样的;
网上讲这是Ember的一个bug
最后解决办法
var dpItemDataCopy = dpItemData.map(function(item) { return Ember.copy(item, true) }); console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links); delete dpItemDataCopy[0].links; console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links);
console结果
Object Object Object undefined
结论
- Ember copy和makeArray不支持deep复制数组
- 若想要真正copy一个数组,可以采用上面的方式,Ember后续应该会给出新的api
参考
http://stackoverflow.com/questions/9693154/native-array-in-emberjs-does-not-support-deep-copy
0 0
- Ember copy array
- Ember
- Java Array copy
- Array.Copy 方法 总结
- copy memory & release array
- Array.Copy 方法
- Array.Copy(array1, array2, 2);
- js array json copy delete ...
- copy member from void * array
- iOS @property (copy) NSMutableArray *array;用copy、strong出现问题
- copy string array to string list
- javascript 深度copy对象(json,array etc..)
- copy from one array to another
- Swift Array copy 的线程安全问题
- C++ memset memcpy 等价于 C# Array.Clear Array.Copy
- C++ memset memcpy 等价于 C# Array.Clear Array.Copy
- How to copy values of an array into another array
- ember.js
- ARM7学习笔记——中断向量控制器VIC
- Camora调用系统的照相机和相册以及图片的压缩
- 关于多个spinner联动
- delphi编译选项
- 成为腾讯开发者——如何使用QQ开放平台和微信开放平台
- Ember copy array
- UIPageControl
- (转)C语言union(联合体 共用体)
- 分析黑盒测试
- Oracle冷备步骤
- Android项目导入jar包——Android查看Jar包的源码——配置
- HDOJ 1005 Number Sequence
- 在Mac OSX下安装和使用GO语言
- C++Primer第五版 7.5.4节练习