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扩充数组 ...
最新文章
- 如何优雅的转换 Bean 对象!
- epoll_data_t里面的void *ptr; int fd; u32; u64 分析
- 专访黄勇:Java在未来的很长一段时间仍是主流
- DL之AlexNet:AlexNet算法的架构详解、损失函数、网络训练和学习之详细攻略
- 大学慕课数据结构单元测试——华中科技大学
- 牛客网【每日一题】7月21日题目精讲—区间权值
- 【nyoj 270】数的分解(统计因子模板)
- cf修复服务器,CF:“卡顿”问题终于得到重视!新版本宣布修复,玩家这下开心了...
- 【VB】StrConv函数.
- linux系统清理内存,如何清除linux的内存缓存,缓冲和交换空间
- 数量场的等值面与矢量场的矢量线的一些基本的东西(写得不好)
- JS 测试 Prototype
- CF1083(Round #526 Div. 1) 简要题解
- Mybatis3.5.4官网下载
- Infopath入门到精通系列-3 Infopath manifest.xsf文件 解析
- GTK使用cairo绘图教程
- 17.3.13 多任务学习 Multi-task learning
- python培训总结报告
- Win系统下将CER文件转成BKS文件
- 10. 哈夫曼树、Trie、补充
热门文章
- 交流电机Clark变换中的功率不变约束与幅值不变约束
- 河南增值税开票系统原服务器地址,河南省增值税发票综合服务平台登录入口:https://fpdk.henan.chinatax.gov.cn...
- julia安装源_[julia]本地离线安装package
- gift to me by myself on 2012's new year
- 【华谋咨询】企业5s管理做大做强的四大措施
- ocx注册以及检测(转)
- 零基础新手如何自学PS
- C语言 斐波那契数列
- JS生成uuid的四种方法
- 47001 data format error hint -- 解析 JSON/XML 内容错误