Javascript中克隆一个数组的实现代码


Posted in Javascript onDecember 06, 2013

08年一家公司JS面试题,职位是javascript工程师(赴google)

面试官问我如何克隆一个数组,当时想了下js的Object没有clone方法,java的Object有。

那怎么得到一个新数组呢?

我当时回答:用一个loop将源数组元素依次push到新数组中。这是最简单的方法,但显然不是面试官想要的答案。

最后告知我:利用Array的slice方法。示例如下:

var ary = [1,2,3];//源数组 
var ary2 = ary.slice(0);//克隆一个新数组 
console.log(ary2); /*  改变ary2,不会影响到ary,说明的确是两个数组而非引用 
 *  如果是两个引用,则改变其中任何一个都是对同一个数组操作 
 */ 
ary2[0] = 10; 
console.log(ary2); 
console.log(ary);
Javascript 相关文章推荐
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
JS实现文字向下滚动完整实例
Feb 06 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
Apr 05 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
Aug 27 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 Javascript
6行代码实现微信小程序页面返回顶部效果
Dec 28 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 Javascript
jQuery实现放大镜案例
Oct 19 jQuery
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
浅析JavaScript中的同名标识符优先级
Dec 06 #Javascript
如何判断元素是否为HTMLElement元素
Dec 06 #Javascript
随鼠标上下滚动的jquery代码
Dec 05 #Javascript
js简单实现删除记录时的提示效果
Dec 05 #Javascript
Jquery 切换不同图片示例代码
Dec 05 #Javascript
jquery 快速回到页首的方法
Dec 05 #Javascript
JS验证邮箱格式是否正确的代码
Dec 05 #Javascript
You might like
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
编程语言Python的发展史
2014/09/26 Python
Python3.6简单反射操作示例
2018/06/14 Python
对python Tkinter Text的用法详解
2018/10/11 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
简单的辞职信范文
2014/01/18 职场文书
关于赌博的检讨书
2014/01/24 职场文书
两只小狮子教学反思
2014/02/05 职场文书
学雷锋演讲稿
2014/03/04 职场文书
公司员工离职证明书
2014/10/04 职场文书
创业计划书之服装
2019/10/07 职场文书