`
zhouyrt
  • 浏览: 1162198 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js克隆一个数组

阅读更多

一道js面试题,职位是javascript工程师

 

面试官问我如何克隆一个数组,当时想了下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);
分享到:
评论
4 楼 Sartner 2012-01-17  
又学一招~~
3 楼 zhangdaiping 2010-06-30  
walkman 写道
楼主下次遇到这个问题,要记得反问一句:你想要深度复制还是浅度复制?

经典
2 楼 lixinlixin2008 2009-05-16  
如果数组包含的是引用对象...
1 楼 walkman 2009-02-05  
楼主下次遇到这个问题,要记得反问一句:你想要深度复制还是浅度复制?

相关推荐

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

    slice是JavaScript数组的一个方法,该方法可以创建一个新数组,这个新数组包含原数组中的某个范围的浅拷贝。slice方法不会改变原数组,而是返回一个新的数组对象。如果slice方法中的参数没有指定,则会默认从头到尾...

    js克隆对象、数组的常用方法介绍

    - `Ext.Array.clone(json)`:此方法专门用于克隆数组。它将创建一个新的数组,包含原始数组的所有元素,但不复制元素之间的关系,因此它也是深拷贝。 2. **jQuery的克隆方法**: - `jQuery.extend(true, {}, json...

    JS实现递归遍历数组,前端必会

    例如,你可以通过递归实现一个深度克隆函数,用于复制一个数组或对象,同时保留其嵌套结构。 需要注意的是,虽然递归在很多情况下非常有用,但如果不正确地使用,可能会导致栈溢出(stack overflow)问题,因为每次...

    js代码-如何将数组对象的一部分另做一个数组对象 (得先将新数组与原数组等长+同类型初始化)

    我们可以利用它来克隆一个数组的部分元素。例如: ```javascript const originalArray = [1, 2, 3, 4, 5]; const slicedArray = Array.from(originalArray.slice(0, 2)); // [1, 2] ``` 这里,`slice(0, 2)`...

    JavaScript 克隆数组最简单的方法

    在JavaScript中,数组克隆是将一个数组复制成一个新的独立的数组,修改克隆后的数组不会影响原始数组。这是在处理复杂数据结构时非常重要的一个概念,特别是在涉及到深层拷贝和浅层拷贝的问题上。本文将深入探讨...

    javascript数组克隆简单实现方法

    在JavaScript中,数组克隆是指创建一个与原数组内容相同但独立的新数组。了解如何克隆数组在进行数据处理和操作时非常有用,尤其是在需要保留原数组不变时。本文将介绍几种使用JavaScript实现数组克隆的简单方法。 ...

    js 数组克隆方法 小结

    在JavaScript中,处理数组时经常...总而言之,在JavaScript编程中,克隆数组是一个常见的需求,掌握以上几种数组克隆的方法,有助于提高代码的可维护性和可读性。在实际应用中,应该根据具体情况选择合适的克隆方法。

    JS克隆,属性,数组,对象,函数实例分析

    在JavaScript编程中,克隆是创建一个对象副本的过程,这个副本与原对象具有相同的数据结构,但不共享相同的引用。克隆技术在处理复杂的数据结构,尤其是涉及到对象和数组时非常有用,因为它允许我们修改副本而不影响...

    words.js:JS数组中的一大堆英文单词

    在给定的"words.js"文件中,我们可以预想它包含了一个数组,该数组可能存储了大量的英文单词。这个场景在很多实际应用中都很常见,比如词汇学习应用、文本分析或者自然语言处理相关的项目。 首先,让我们了解一下...

    JavaScript实现找出数组中最长的连续数字序列

    在给定的代码示例中,使用了slice方法来克隆数组,并且使用了数组的sort方法来对数组进行排序。排序后的数组用于辅助查找连续的数字序列。 然后,需要掌握关键逻辑实现的步骤: 1. 克隆原始数组,避免修改输入数组...

    JavaScript中concat复制数组方法浅析

    在 JavaScript 中,数组是一种引用类型的数据结构,这意味着当我们复制一个数组时,实际上复制的是引用,而不是数组内容本身。 为了复制数组,通常可以使用以下方法: - 直接赋值:这种做法会使得两个变量指向同一...

    JavaScript浅层克隆与深度克隆示例详解

    浅层克隆,又称为表面克隆,它创建一个新的对象,然后将源对象的属性值复制到新对象中。如果属性值是原始类型(如Number、Boolean、String、undefined、null),那么新旧对象将拥有独立的副本。但对于引用类型(如...

    用javascript对一个json数组深度赋值示例

    总结一下,这个示例展示了如何使用JavaScript进行JSON数组的深度赋值,通过递归遍历和复制对象的每一个属性,包括嵌套的子对象,从而创建一个全新的独立副本。这种方法在处理和保护原始数据结构时非常有用,但需要...

    JS数组的赋值介绍

    在JavaScript中,数组是一种特殊的对象,它用于存储...要避免这种共享行为,可以使用`slice()`方法来克隆数组。了解这些概念对于正确地处理和操作JavaScript数组至关重要,尤其是在涉及到复杂的数据结构和函数操作时。

    JS 数组随机洗牌的实例代码

    1. **克隆数组**:在洗牌之前,我们通常不希望改变原数组,因此需要先创建一个原数组的副本。在JavaScript中,可以使用`slice()`方法来克隆数组。例如: ```javascript function cloneArr(arr) { return arr....

    array-helps:流行的Lodash库的数组方法的一个克隆

    数组助手 流行的库的数组方法的克隆。 我出于某些原因决定编写此项目。 首先,我想开始熟悉使用Mocha... 完成后,将提供一个文档站点,并且该软件包将在npm上可用。 目前,回购只是作为我工作的备份 执照 麻省理工学院

Global site tag (gtag.js) - Google Analytics