中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

JavaScript數(shù)組合并的多種方法
來源:易賢網(wǎng) 閱讀:1333 次 日期:2016-06-25 11:58:32
溫馨提示:易賢網(wǎng)小編為您整理了“JavaScript數(shù)組合并的多種方法”,方便廣大網(wǎng)友查閱!

這篇文章主要為大家詳細介紹了JavaScript數(shù)組合并的多種方法,感興趣的朋友可以參考一下

這是一篇簡單的文章,關(guān)于JavaScript數(shù)組使用的一些技巧。我們將使用不同的方法結(jié)合/合并兩個JS數(shù)組,以及討論每個方法的優(yōu)點/缺點。

讓我們先考慮下面這情況:

var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ];

var b = [ "foo", "bar", "baz", "bam", "bun", "fun" ];

很顯然最簡單的結(jié)合結(jié)果應該是:

[

  1, 2, 3, 4, 5, 6, 7, 8, 9,

  "foo", "bar", "baz", "bam" "bun", "fun"

]

concat(..)

這是最常見的做法:

var c = a.concat( b );

a; // [1,2,3,4,5,6,7,8,9]

b; // ["foo","bar","baz","bam","bun","fun"]

c; // [1,2,3,4,5,6,7,8,9,"foo","bar","baz","bam","bun","fun"]

正如你所看到的,C是一個全新的數(shù)組,表示a和b兩個數(shù)組的組合,并讓A和B不變。簡單吧?

但如果a有10,000個元素,而b也有一萬個元素? C就會有2萬個元素,所以a和b的內(nèi)內(nèi)存使用就會翻倍。

“沒問題!”,你說。讓它們被垃圾回收,把A和B設(shè)置為null,問題解決了!

a = b = null; // 'a'和'b'就被回收了

呵呵。對于只有幾個元素的小數(shù)組,這沒啥問題。但對于大數(shù)組,或者在內(nèi)存有限的系統(tǒng)中需要經(jīng)常重復這個過程,它其實還有很多改進的地方。

循環(huán)插入

好吧,讓我們將一個數(shù)組的內(nèi)容復制到另一個,使用: Array#push(..)

// `b` onto `a`

for (var i=0; i < b.length; i++) {

  a.push( b[i] );

}

a; // [1,2,3,4,5,6,7,8,9,"foo","bar","baz","bam","bun","fun"]

b = null;

現(xiàn)在,數(shù)組a有了數(shù)組b的內(nèi)容。

似乎有更好的內(nèi)存占用。

但如果a數(shù)組比較小?出于內(nèi)存和速度的原因,你可能要把更小的a放到b的前面,。沒問題,只需將push(..)換成unshift(..)即可:

// `a` into `b`:

for (var i=a.length-1; i >= 0; i--) {

  b.unshift( a[i] );

}

b; // [1,2,3,4,5,6,7,8,9,"foo","bar","baz","bam","bun","fun"]

功能技巧

不過for循環(huán)確實比較丑,而且不好維護。我們可以做的更好嗎?

這是我們的第一次嘗試,使用Array#reduce:

// `b` onto `a`:

a = b.reduce( function(coll,item){

  coll.push( item );

  return coll;

}, a );

a; // [1,2,3,4,5,6,7,8,9,"foo","bar","baz","bam","bun","fun"]

// or `a` into `b`:

b = a.reduceRight( function(coll,item){

  coll.unshift( item );

  return coll;

}, b );

b; // [1,2,3,4,5,6,7,8,9,"foo","bar","baz","bam","bun","fun"]

Array#reduce(..) 和 Array#reduceRight(..)是不錯的,但他們是一點點笨拙。 ES6=>的箭頭函數(shù)將減少一些代碼量,但它仍然需要一個函數(shù),每個元素都需要調(diào)用一次,不是很完美。

那這個怎么樣:

// `b` onto `a`:

a.push.apply( a, b );

a; // [1,2,3,4,5,6,7,8,9,"foo","bar","baz","bam","bun","fun"]

// or `a` into `b`:

b.unshift.apply( b, a );

b; // [1,2,3,4,5,6,7,8,9,"foo","bar","baz","bam","bun","fun"]

這是一個要好很多吧?特別是因為 unshift(..)方法在這里并不需要擔心前面的反向排序。 ES6的spead操作會更漂亮: a.push( …b ) 或 b.unshift( …a

數(shù)組最大長度限制

第一個主要的問題是,內(nèi)存使用量增長了一倍(當然只是暫時的!)被追加內(nèi)容基本上是通過函數(shù)調(diào)用將元素復制到堆棧中。此外,不同的JS引擎都有拷貝數(shù)據(jù)長度的限制。

所以,如果數(shù)組有一百萬個元素,你肯定會超出了push(…)或unshift(…)允許調(diào)用堆棧的限制。唉,處理幾千個元素它會做得很好,但你必須要小心,不能超過合理的長度限值。

注意: 你可以嘗試一下splice(…),它跟push(…)和unshift(…)一樣都有這種問題。

有一種方法可以避免這種最大長度限制。

function combineInto(a,b) {

  var len = a.length;

  for (var i=0; i < len; i=i+5000) {

    b.unshift.apply( b, a.slice( i, i+5000 ) );

  }

}

等一下,我們的可讀性倒退了。 就這樣吧,可能會越改越差。

以上就是本文的全部內(nèi)容,希望對大家學習javascript程序設(shè)計有所幫助。

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:JavaScript數(shù)組合并的多種方法

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产日韩精品视频一区二区三区| 日韩一级大片在线| 欧美日韩精品在线| 欧美岛国在线观看| 久久免费精品视频| 欧美黄色影院| 国产精品激情av在线播放| 国产一区二区高清视频| 最新日韩欧美| 午夜日韩在线| 欧美精品一区二| 国产午夜精品理论片a级探花 | 欧美激情精品久久久久久蜜臀| 欧美日韩一区二区三区在线视频| 国产美女精品在线| 亚洲人成在线观看| 久久国产精品99久久久久久老狼| 模特精品在线| 国产日韩在线一区| 亚洲精品一二区| 欧美专区18| 国产精品久久久久国产精品日日 | 欧美成人一区二区在线| 欧美视频中文字幕在线| 在线看片一区| 欧美在线免费| 欧美日韩一区二区视频在线 | 欧美三级网址| 国产自产2019最新不卡| a91a精品视频在线观看| 浪潮色综合久久天堂| 国产精品中文在线| 一区二区高清视频| 欧美 日韩 国产精品免费观看| 国产欧美日韩中文字幕在线| 一区二区三区精品视频| 欧美成人国产| 亚洲电影免费观看高清完整版| 欧美一级理论片| 国产精品国产精品国产专区不蜜| 永久91嫩草亚洲精品人人| 99re6热只有精品免费观看| 国产在线观看一区| 亚洲调教视频在线观看| 欧美成人免费观看| 在线观看欧美| 久久久久久久久岛国免费| 国产精品一级久久久| 国产精品99久久久久久久女警 | 影音先锋日韩精品| 久久精品理论片| 国产精品一区免费视频| 亚洲专区在线| 国产精品永久免费| 亚洲午夜电影在线观看| 欧美午夜电影在线| 亚洲深夜福利网站| 欧美午夜不卡在线观看免费| 一本色道久久99精品综合 | 亚洲国产高清一区| 久久成人羞羞网站| 国产亚洲一区二区三区在线观看| 亚洲一区二区视频在线| 欧美视频免费看| 亚洲一区二区高清| 国产毛片一区| 欧美一级久久久| 红桃视频成人| 久久中文精品| 亚洲精品护士| 国产精品扒开腿做爽爽爽软件 | 久久精品在线观看| 国产一区亚洲| 美日韩免费视频| 亚洲激情成人在线| 欧美日本中文| 亚洲自啪免费| 国产一区二三区| 欧美不卡高清| 亚洲社区在线观看| 欧美日韩mp4| 亚洲激情一区二区三区| 99国产精品久久久久老师| 免费亚洲电影| 日韩视频专区| 国产精品成人va在线观看| 性做久久久久久久久| 狠狠色狠狠色综合日日五| 久久视频在线视频| 一区二区欧美激情| 一色屋精品亚洲香蕉网站| 欧美国产精品v| 国产精品99久久久久久www| 国产亚洲第一区| 欧美黄色免费网站| 亚洲欧美美女| 亚洲三级观看| 国产一区二区黄色| 免费成人你懂的| 亚洲欧美激情在线视频| 在线免费不卡视频| 国产精品高潮呻吟久久av无限| 欧美一区二区三区在线播放| 亚洲第一精品福利| 亚洲婷婷免费| 一区二区三区**美女毛片| 亚洲欧美日本视频在线观看| 国产性做久久久久久| 欧美激情在线狂野欧美精品| 香蕉久久夜色精品国产| 亚洲欧洲三级| 国语对白精品一区二区| 欧美三级午夜理伦三级中视频| 欧美中文字幕第一页| 日韩午夜三级在线| 国产一区二区成人| 欧美日韩1区2区| 美女尤物久久精品| 香蕉乱码成人久久天堂爱免费 | 欧美在线观看一区| 亚洲人精品午夜| 亚洲第一毛片| 狠狠综合久久av一区二区老牛| 国产精品久久久久aaaa| 欧美日韩国产综合新一区| 蜜桃av一区二区三区| 久久精品中文字幕一区二区三区| 亚洲欧美文学| 欧美性猛交视频| 国产精品视频免费在线观看| 亚洲影院在线观看| 国产欧美 在线欧美| av不卡在线看| 国产精品美女久久久浪潮软件| 欧美mv日韩mv国产网站| 欧美一区在线视频| 亚洲自拍三区| 亚洲香蕉视频| 亚洲无玛一区| 中文av一区特黄| 一区二区三区**美女毛片| 亚洲日本乱码在线观看| **网站欧美大片在线观看| 伊人色综合久久天天| 国内视频一区| 樱桃视频在线观看一区| 狠狠色狠狠色综合系列| 国产一区二区三区网站 | 国产精品一区二区视频| 国产精品porn| 国产精品区免费视频| 国产精品一区免费视频| 国产精品午夜视频| 国产欧美日韩在线视频| 国内精品久久久久久| 黑人中文字幕一区二区三区| 黄色综合网站| 91久久综合| 宅男精品视频| 久久se精品一区二区| 老妇喷水一区二区三区| 欧美日韩三区| 国产精品美女诱惑| 国产一区二区黄色| 在线观看亚洲视频啊啊啊啊| 亚洲精品国产精品国自产观看| 亚洲色图自拍| 久久精品二区| 欧美成人免费小视频| 国产精品二区二区三区| 国产亚洲毛片在线| 亚洲日本精品国产第一区| 亚洲男人av电影| 免费成人av在线看| 欧美日韩在线三级| 国产亚洲一区二区在线观看| 亚洲人成网站色ww在线| 欧美日韩精品综合| 欧美三级小说| 亚洲欧洲日本国产| 亚洲一卡久久| 欧美日韩激情小视频| 国产精品电影在线观看| 国内精品模特av私拍在线观看| 日韩天堂在线视频| 亚洲在线日韩| 欧美日韩伦理在线| 亚洲人体1000| 久久只有精品| 欧美天堂亚洲电影院在线观看 | 欧美jizzhd精品欧美喷水| 欧美激情精品久久久久久久变态| 国产精品无码专区在线观看 | 亚洲影院色在线观看免费| 午夜精品久久久久久久99水蜜桃| 久久综合伊人77777麻豆| 国产一区日韩一区| 久久婷婷国产麻豆91天堂| 国产亚洲欧美另类中文| 在线中文字幕一区|