Ember copy array
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
undefined
undefined
我只删除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结果
ObjectObjectObjectundefined
结论
- Ember copy和makeArray不支持deep复制数组
- 若想要真正copy一个数组,可以采用上面的方式,Ember后续应该会给出新的api
参考
http://stackoverflow.com/questions/9693154/native-array-in-emberjs-does-not-support-deep-copy
Ember copy array相关推荐
- php copy array,ES6中Array.copyWithin()函数用法的详解
ES6为Array增加了copyWithin函数,用于操作当前数组自身,用来把某些个位置的元素复制并覆盖到其他位置上去.下面重点给大家介绍ES6中Array.copyWithin()函数的用法,需要的 ...
- C#把某个数组的一部分复制到另一个数组中的两种方法:Buffer.BlockCopy和Array.Copy...
static void Main(string[] args){int[] src = new[] { 1, 2, 3, 4, 5, 6 };const int destLen = 4;//目标数组大 ...
- C++ 复制vector值到array,复制 array 到jintArray
// [feature 1 ] copy vector value to array vector<int> vec ; for (int i = 0 ;i<10;++i) { ...
- stl中copy()函数_std :: rotate_copy()函数以及C ++ STL中的示例
stl中copy()函数 C ++ STL std :: rotate_copy()函数 (C++ STL std::rotate_copy() function) rotate_copy() fun ...
- C#中Array类精讲
文章目录 一.Array类概念 二.Array类属性 三.Array类方法 一.Array类概念 Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义.Array 类提供了各 ...
- Unity中Array数组知识点总结
C# Array 类 Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义.Array 类提供了各种用于数组的属性和方法. Array 类的属性 下表列出了 Array 类中 ...
- 图形化编程 html,用GoJS实现图形化交互编程界面示例
JavaScript 语言: JaveScriptBabelCoffeeScript 确定 function init() { var $ = go.GraphObject.make; //for c ...
- C_Imap 邮件的imap
<?php class C_Imap{public $Fosck = null;public $Server = '';public $Port = 143;public $Errno = nu ...
- JS判断元素是否在数组内
一.JQuery 如果是用JQuery的话,可以用inArray()函数: jquery inarray()函数详解 jquery.inarray(value,array) 确定第一个参数在数组中的位 ...
- 【Python】Numpy扩充数组函数之repeat和tile用法
2019独角兽企业重金招聘Python工程师标准>>> [Python]Numpy扩充数组函数之repeat和tile用法,有需要的朋友可以参考下. 用repeat和tile扩充数组 ...
最新文章
- python游戏脚本实例-Python使用pygame模块编写俄罗斯方块游戏的代码实例
- Android开发总结
- HP大中华区总裁孙振耀谈工作、职业与人生规划
- NET流行高性能JSON框架-Json.NET
- ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
- IDE 插件新版本发布,总有一个功能帮到你——开发部署提速 8 倍
- PE教程6: Import Table(引入表)(看雪)
- 重庆航天职业技术学院计算机系在哪个校区,2020年重庆航天职业技术学院地址在哪里...
- Mysql深入浅出学习
- 2020.9.28 爱客影视3.6.5-pro完整版搭建完毕带解析接口无广告
- masm32 汇编hello world程序
- captura 录制出来的是黑屏_黑屏:我录制的视频播放时画面是黑的解决方案 - Bandicam(班迪录屏)...
- 美团|商家数据指标体系搭建实例 。
- php文字转语音amr,Android插件,TTS语音合成(文字转化语音)。
- 各种笔记本进入BIOS的快捷键
- 用c语言找出图片中黄颜色部分,测试:6种玫瑰颜色找出你的恋爱基因,神准!...
- Snapde电子表格支持的文件格式
- 本地文件压缩上传linux系统,使用压缩的方式将Windows下的zip压缩包上传到Linux系统的方法解析...
- 个人QQ号码推广代码
- java实现微信企业付款到银行卡_java实现微信企业付款到个人