Javascript中克隆一個(gè)數(shù)組的實(shí)現(xiàn)代碼
08年一家公司JS面試題,職位是javascript工程師(赴google)
面試官問我如何克隆一個(gè)數(shù)組,當(dāng)時(shí)想了下js的Object沒有clone方法,java的Object有。
那怎么得到一個(gè)新數(shù)組呢?
我當(dāng)時(shí)回答:用一個(gè)loop將源數(shù)組元素依次push到新數(shù)組中。這是最簡(jiǎn)單的方法,但顯然不是面試官想要的答案。
最后告知我:利用Array的slice方法。示例如下:
var ary = [1,2,3];//源數(shù)組
var ary2 = ary.slice(0);//克隆一個(gè)新數(shù)組
console.log(ary2);
/* 改變ary2,不會(huì)影響到ary,說明的確是兩個(gè)數(shù)組而非引用
* 如果是兩個(gè)引用,則改變其中任何一個(gè)都是對(duì)同一個(gè)數(shù)組操作
*/
ary2[0] = 10;
console.log(ary2);
console.log(ary);
相關(guān)文章
JS typeof fn === ''function'' && fn()詳解
最近在學(xué)習(xí)js的時(shí)候發(fā)現(xiàn)很多人都喜歡在JS 中存在fn && fn() 執(zhí)行語(yǔ)句或者typeof fn === 'function' && fn(),下面這篇文章就為大家分享一下2020-08-08javascript代碼在ie8里報(bào)錯(cuò) document.getElementById(...) 為空或不是對(duì)象的解決方
今天更升級(jí)了ie8,發(fā)現(xiàn)原來(lái)在ie7下可以運(yùn)行的代碼,不能運(yùn)行了,發(fā)現(xiàn)了一些細(xì)節(jié),附臨時(shí)修改辦法。2009-11-11javascript Slip.js實(shí)現(xiàn)整屏滑動(dòng)的手機(jī)網(wǎng)頁(yè)
Slip.js能做什么?Slip.js可以讓你的手機(jī)網(wǎng)站像原生手機(jī)軟件一樣慣性滾動(dòng),手觸圖片輪換等等,對(duì)Slip.js感興趣的小伙伴們可以參考一下2015-11-11JS實(shí)現(xiàn)自動(dòng)變換的菜單效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)自動(dòng)變換的菜單效果代碼,可實(shí)現(xiàn)自動(dòng)變換菜單選中項(xiàng)的技巧,涉及JavaScript定時(shí)函數(shù)觸發(fā)頁(yè)面樣式屬性變換的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09