国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

js 數(shù)組克隆方法 小結(jié)

2019-11-21 00:39:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
因此如果要?jiǎng)?chuàng)建一個(gè)與已經(jīng)存在的對(duì)象內(nèi)容相同的對(duì)象,不能通過(guò)簡(jiǎn)單的賦值操作。這樣說(shuō)的可能還是不太明白。

看下面的例子:
復(fù)制代碼 代碼如下:

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

我們執(zhí)行上面的代碼發(fā)現(xiàn),在a的內(nèi)容做改變后,變量b和c的結(jié)果也改變了。

上面的情況也許不是我們所需要的,我們希望的是創(chuàng)建一個(gè)與原對(duì)象內(nèi)容一樣的“新”對(duì)象。這樣我們就需要通過(guò)一些克隆的辦法來(lái)實(shí)現(xiàn)。

JS里Array也是一種Object。這里我們主要總結(jié)一下Array的克隆方式,我們這里為Array原生對(duì)象擴(kuò)展一個(gè)clone方法。

1、最簡(jiǎn)單的辦法,就是創(chuàng)建一個(gè)新數(shù)組,并遍歷數(shù)組逐項(xiàng)添加到新數(shù)組中。
復(fù)制代碼 代碼如下:

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; }

這種實(shí)現(xiàn)方式是最容易想到也是最容易理解的,但是代碼有點(diǎn)復(fù)雜了,我們仔細(xì)研究Array的一些方法,其實(shí)還有一個(gè)很簡(jiǎn)單的辦法。下面說(shuō)一下其它的兩種辦法。

2、通過(guò)Array對(duì)象的slice方法。

slice方法是通過(guò)參數(shù)start和end的傳入值來(lái)返回?cái)?shù)組中的一段,該方法不對(duì)原數(shù)組進(jìn)行操作。我們通過(guò)slice(0)可以使其返回所有項(xiàng)。
復(fù)制代碼 代碼如下:

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

3、通過(guò)Array對(duì)象的concat方法。
concat方法是用來(lái)實(shí)現(xiàn)數(shù)組的合并的。通過(guò)和一個(gè)空函數(shù)的合并,即可實(shí)現(xiàn)我們的克隆功能。
復(fù)制代碼 代碼如下:

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(); }

如果發(fā)揮想象應(yīng)該還有其它的辦法,以上只是本人想到的兩種方法。

JavaScript 克隆數(shù)組最簡(jiǎn)單的方法

JavaScript數(shù)組的快速克隆(slice()函數(shù))和數(shù)組的排序、亂序和搜索(sort()函數(shù))
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐至县| 井研县| 抚宁县| 大同县| 资中县| 共和县| 岳阳县| 涿州市| 朝阳市| 辽宁省| 嘉兴市| 浦县| 婺源县| 渝中区| 息烽县| 简阳市| 九江市| 伊宁市| 麻江县| 巢湖市| 阿拉尔市| 凌云县| 白城市| 台山市| 板桥市| 潍坊市| 临湘市| 银川市| 恩施市| 北海市| 莲花县| 正定县| 微博| 西充县| 通化市| 金堂县| 定边县| 沈阳市| 晋州市| 贡觉县| 蓝山县|