`

js数组的一些技巧算法

 
阅读更多

js数组倒序

reverse() 方法用于颠倒数组中元素的顺序。

 

因此如果要创建一个与已经存在的对象内容相同的对象,不能通过简单的赋值操作。这样说的可能还是不太明白。 

看下面的例子: 

复制代码代码如下:

var a=[1,2,3,4]; var b=a;c=b; a.pop(); //移除最后一个元素 alert(b); //弹出1,2,3 alert(c); //弹出1,2,3 
var a=[1,2,3,4]; var b=a;c=b; a.pop(); //移除最后一个元素 alert(b); //弹出1,2,3 alert(c); //弹出1,2,3 


我们执行上面的代码发现,在a的内容做改变后,变量b和c的结果也改变了。 

上面的情况也许不是我们所需要的,我们希望的是创建一个与原对象内容一样的“新”对象。这样我们就需要通过一些克隆的办法来实现。 

JS里Array也是一种Object。这里我们主要总结一下Array的克隆方式,我们这里为Array原生对象扩展一个clone方法。 

1、最简单的办法,就是创建一个新数组,并遍历数组逐项添加到新数组中。 

复制代码代码如下:

Array.prototype.clone=function(){ var a=[]; for(var i=0,l=this.length;i<l;i++) a.push(this[i]); return a; } 
Array.prototype.clone=function(){ var a=[]; for(var i=0,l=this.length;i<l;i++) a.push(this[i]); return a; } 


这种实现方式是最容易想到也是最容易理解的,但是代码有点复杂了,我们仔细研究Array的一些方法,其实还有一个很简单的办法。下面说一下其它的两种办法。 

2、通过Array对象的slice方法。 

slice方法是通过参数start和end的传入值来返回数组中的一段,该方法不对原数组进行操作。我们通过slice(0)可以使其返回所有项。 

复制代码代码如下:

Array.prototype.clone=function(){ return this.slice(0); } 
Array.prototype.clone=function(){ return this.slice(0); } 


3、通过Array对象的concat方法。 
concat方法是用来实现数组的合并的。通过和一个空函数的合并,即可实现我们的克隆功能。 

复制代码代码如下:

Array.prototype.clone=function(){ return [].concat(this); } //或者 Array.prototype.clone=function(){ return this.concat(); } 
Array.prototype.clone=function(){ return [].concat(this); } //或者 Array.prototype.clone=function(){ return this.concat(); } 

 

 

分享到:
评论

相关推荐

    JavaScript中数组的一些算法和技巧总结

    本篇文章将深入探讨JavaScript中数组的一些算法和技巧,帮助开发者更好地理解和利用这些功能。 1. 数组的创建与初始化 - `let arr = [];` 用空括号创建一个空数组。 - `let arr = new Array();` 也可以创建空数组...

    js数组相减简单示例【删除a数组所有与b数组相同元素】

    扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...

    JS数组中对象去重操作示例

    - **《JavaScript数组操作技巧总结》**:涵盖数组的创建、遍历、合并、排序、过滤等多种操作。 - **《JavaScript字符与字符串操作技巧总结》**:涉及字符串的拼接、截取、查找、替换等方法。 - **《JavaScript...

    js实现json数组分组合并操作示例

    在大型数据集上执行此类操作时,应考虑使用更高效的算法,例如使用`Array.prototype.find()`或`Set`对象来检查`id`是否已存在于目标数组中,以减少不必要的遍历。 综上,本示例展示了JavaScript处理JSON数组的分组...

    JavaScript数组去重算法实例小结

    在实际开发中,我们还可以参考《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript排序算法总结》、《JavaScript查找算法技巧总结》、...

    JavaScript获取多个数组的交集

    同时,理解这些基本操作也有助于我们更好地掌握JavaScript数组处理的技巧。在阅读类似《JavaScript高级程序设计》这样的书籍,或者在iteye这样的技术社区中,你可以找到更多关于数组操作和算法优化的知识,不断提升...

    JS实现的数组全排列输出算法

    通过文件信息的描述和内容分析,我们可以了解到JavaScript中实现数组全排列输出算法的方法,理解了全排列问题的递归解法原理,以及在实际编程中的技巧和注意事项。这对于提升JavaScript编程能力和解决相关算法问题是...

    基于javascript实现的一些常用算法

    这个名为"基于javascript实现的一些常用算法"的资源集合,很可能包含了一系列用JavaScript编写的经典算法实现,这对于学习和理解算法有着极大的帮助。让我们深入探讨一下这些算法及其在JavaScript中的实现。 1. **...

    JS实现二维数组元素的排列组合运算简单示例

    本文还提到,对JavaScript数组的操作技巧总结在多个专题中,包括《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》等。这些内容对理解JavaScript编程中的数组处理有着重要意义。同样重要的是,...

    JS实现的合并多个数组去重算法示例

    除了算法示例外,文档还列出了一系列与JavaScript相关的专题总结文章,如《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》等。这些文章深入解析了JavaScript在处理数组、遍历、排序、数学运算、数据结构...

    javascript数组去重方法分析

    本文将详细解析两种JavaScript数组去重的方法,并提供一些额外的在线工具供参考。 ### 方法一:使用`indexOf()`方法 这种方法基于`indexOf()`函数来检测数组中的元素是否已经存在。`indexOf()`返回指定元素在数组...

    JS实现的JSON数组去重算法示例

    在学习和使用这些技术时,我们还需要熟悉JavaScript的其他相关知识,比如数据结构、算法、错误调试技巧等。这些知识构成了JavaScript程序设计的重要基础,能够帮助开发者更好地理解和实现复杂的程序逻辑。 总之,...

    JS数组求和的常用方法实例小结

    - **《JavaScript数组操作技巧总结》** - **《JavaScript字符与字符串操作技巧总结》** - **《JavaScript遍历算法与技巧总结》** - **《JavaScript排序算法总结》** - **《JavaScript查找算法技巧总结》** - **...

    JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

    JavaScript中的数组排序是编程中经常遇到的操作,主要目的是将数组元素按照一定的顺序排列。JavaScript提供了多种数组排序方法,不同的方法适用于不同场景和需求。本文重点介绍了冒泡排序、sort排序、快速排序、希尔...

    JS数组splice操作实例分析

    最后,文章给出了更多关于JavaScript数组操作的参考资料,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,这些资料可以进一步帮助读者深化对JavaScript数组操作的理解和应用。...

    复制数组或从数组中抽取特定元素组成新数组

    本文将深入探讨如何有效地复制数组以及如何从数组中抽取特定元素来组成新的数组,这将帮助我们更好地理解和掌握JavaScript中的数组操作技巧。 ### 复制数组 复制数组通常指的是创建一个与原数组具有相同元素的新...

    JavaScript常用数组算法小结

    JavaScript中的数组算法是编程中常见的问题,特别是在处理数据集合时。本文将重点介绍两种常见的数组操作:数组去重和数组顺序扰乱。 一、数组去重 数组去重是指从一个包含重复元素的数组中,创建一个新的数组,...

    JavaScript数组去重的几种方法

    本文将从几个不同的角度介绍JavaScript数组去重的方法,旨在帮助读者掌握数组去重的技巧。 首先,数组去重的核心思想可以分为两大类。一是通过遍历数组,比较数组内部元素,然后将唯一的元素添加到新的数组中;二是...

    用二维数组实现杨辉三角

    通过上述分析,我们可以看出,使用二维数组实现杨辉三角不仅是一个展示编程技巧的例子,更是理解数据结构和算法设计的基础练习。掌握了这种方法,不仅可以加深对二维数组的理解,还能提高解决实际问题的能力。在后续...

    JS数组的高级使用方法示例小结

    以上就是JavaScript数组的一些高级使用方法,它们在日常编程中非常实用。通过这些技巧,你可以更高效地处理数组数据,无论是简单的数据操作还是复杂的算法实现。了解并熟练掌握这些方法,将有助于提升你的JavaScript...

Global site tag (gtag.js) - Google Analytics