亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript中活靈活現的Array對象詳解

2019-11-19 18:45:30
字體:
來源:轉載
供稿:網友

前言

JavaScript中的Array對象,就是我們常說的數組對象,主要用于封裝多個任意類型的數據,并對它們進行管理。

所有主流瀏覽器均支持Array對象。

大家都知道Array實例有這四個方法:push、pop、shift、unshift。大家也都知道 push + pop實現棧, shift + push實現隊列。在這里不討論什么先進后出、先進先出。

但一面這個題將要用到這幾個方法。

題目

螺旋矩陣這個名詞,在后臺語言中可能很熟悉,他是個二維數組,他有什么特點呢?請看下圖:

以上是一個從外到內的螺旋矩陣,他的排列規則是從外圍開始走,一圈一圈繞道最里面,就像一條盤旋著的蛇。

分析與解答

進入正題,今年9月份騰訊校招在線筆試題就有一個螺旋矩陣的 題,傳入給定數字n,打印出n*n的螺旋矩陣,當時本菜鳥并沒有做出來,時間過后自己在電腦上想,然后恍然大悟明白的其中的奧妙。

雖然博主沒有記錄當時的代碼,但是我是首先定義了個n*n的二維數組,得到需要繞幾層,比如上面的是2層,然后就循環幾次,在內部用四個for循環,分別是上下左右給定義的二維數組插內容,具體的代碼就沒法上了,反正方法很笨,而且并不是本文章的重點,下面進入本章主題:

前幾天我在codewars上做題,遇到了個螺旋矩陣的題,它是要求寫一個函數,給定一個矩陣二維數組參數,返回一個數組,該數組的元素順序就是螺旋矩陣的路徑。

例如:

function getLinear (spiral) { //...做一些操作 }var arr = [ [1,2,3], [4,5,6], [7,8,9]]getLinear(arr) // 返回 [1,2,3,6,9,8,7,4,5]

上面例子清除的看到getLinear函數是將傳入的‘螺旋矩陣'用一維數組按順序輸出了(我也不知道怎么說了,反正就是把這個二維數組像蛇一樣盤旋著形成一維數組)

看到這個題的第一時間,我就想起了騰訊校招的那個題, 然后博主就用類似的四個for循環寫完了,然后提交。這個網站有個功能是,你做完題目可以看別人做的代碼,博主小心翼翼的點開答案列表,哇,第一條就深深吸引了我。雖然不記得別人寫的源碼,但大致是這樣的:

function getLinear(spiral) {  var item;  var linear = []  while (item = spiral.shift()) {  // 上  linear = linear.concat(item)  // 右  for (var i = 0; i < spiral.length; i++) {   linear.push( spiral[i].pop() )  }  // 下  linear = linear.concat( spiral.pop().reverse())  // 左  for (var i = spiral.length - 1; i >= 0; i --) {   linear.push(spiral[i].shift())  }  }  return linear }

對于菜鳥級別的我來說,剛開始還有點懵,因為跟我的思維不一樣,看了一會才發現其中的奧妙。相比我寫的真是好多了,這個代碼不需要考慮傳入的是否為n*n數組,他可以解析任意數組比如2*3數組等。

而且代碼絕對簡潔,對于有一定基礎的來說也很容易懂。

如果你有些困惑,就往下看,我的圖文解釋

// 上 linear = linear.concat(item)

item為二維數組的第一個元素,就是第一個數組,將它移除數組并返回,如下:

此行代碼后,原數組變成如下:

接下來,我們需要將 5 6 7 加入要返回的數組中,也就是二維數組的每個數組元素的最后一個元素,我們可以用pop獲取到:

// 右  for (var i = 0; i < spiral.length; i++) {   linear.push( spiral[i].pop() )  }

這時原來的二維數組變成了如下:

接下來我們要拿到最后一行 10 9 8 并倒置,將二維數組pop出最后一個數組然后將他reverse就可以了

// 下 linear = linear.concat(spiral.pop().reverse())

此時原來二維數組是這樣的:

獲取左邊的就跟右邊類似,只需要將pop變成shift:

// 左for (var i = spiral.length - 1; i >= 0; i --) { linear.push(spiral[i].shift())}

原來二維數組變為:

此時,一圈就完了,然后while判斷是否進入下一圈。

總結

好了,本文的內容就到這里了,一個看上去不簡單的題目,在Array的靈活下變得如此簡單,希望本文的內容對各位js新手們能有所幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线色欧美三级视频| 国产小视频91| 日本久久91av| 欧美激情国产精品| 中文字幕日韩av电影| 国产欧美精品日韩| 亚洲欧美国产高清va在线播| 亚洲xxx视频| 亚洲精品第一页| 亚洲日本aⅴ片在线观看香蕉| 久久成人人人人精品欧| 俺去亚洲欧洲欧美日韩| 国产成人欧美在线观看| 亚洲国产精品一区二区三区| 精品小视频在线| 国产精品吊钟奶在线| 日本视频久久久| 久久久综合免费视频| 91免费人成网站在线观看18| 国色天香2019中文字幕在线观看| 国产免费观看久久黄| 亚洲第一av网| 国产日韩换脸av一区在线观看| 国产免费成人av| 亚洲va久久久噜噜噜| 97在线视频精品| 久久韩国免费视频| 亚洲人成网站色ww在线| 97超视频免费观看| 久久精品在线播放| 51久久精品夜色国产麻豆| 亚洲无亚洲人成网站77777| 亚洲a在线播放| 欧洲午夜精品久久久| 日韩av在线导航| 日韩国产精品亚洲а∨天堂免| 岛国av一区二区在线在线观看| 日韩av成人在线观看| 欧美激情精品久久久久久久变态| 精品一区二区三区四区| 色爱精品视频一区| 国产成人啪精品视频免费网| 日本欧美黄网站| 4438全国亚洲精品在线观看视频| 欧美人成在线视频| 久久人人爽人人爽人人片av高清| 亚洲国产小视频| 国产综合色香蕉精品| 日韩在线视频观看正片免费网站| 国产精品1区2区在线观看| 91福利视频网| 久久精品视频99| 欧美午夜视频一区二区| 国产精品一二区| 亚洲精品乱码久久久久久金桔影视| 黄色一区二区在线观看| 日韩视频永久免费观看| 尤物yw午夜国产精品视频明星| 欧美成人h版在线观看| 国产精品免费电影| 4438全国亚洲精品在线观看视频| 亚洲色图色老头| 精品久久香蕉国产线看观看gif| 日韩在线免费视频| 尤物tv国产一区| 亚洲欧美制服另类日韩| 亚洲人成在线观看| 亚洲视频在线观看| 亚洲国产日韩欧美在线99| 欧美乱大交做爰xxxⅹ性3| 51色欧美片视频在线观看| 亚洲黄色片网站| 欧美国产视频日韩| 亚洲男人的天堂在线| 欧美人在线观看| 日韩亚洲欧美中文高清在线| 欧美日韩亚洲视频一区| 欧美国产精品人人做人人爱| 亚洲一区二区久久| 精品国模在线视频| 国产精品视频最多的网站| 一区二区三区美女xx视频| 亚洲无限乱码一二三四麻| 亚洲人精品午夜在线观看| 2018国产精品视频| 视频直播国产精品| 日韩精品高清在线| 亚洲电影av在线| 亚洲全黄一级网站| 国产91成人video| 国产精品视频免费观看www| 欧美精品videosex极品1| 国产一区二区三区欧美| 一本色道久久综合狠狠躁篇的优点| 国产一区私人高清影院| 国产日韩欧美在线视频观看| 91精品视频专区| 在线观看视频99| 亚洲成人xxx| 亚洲一区二区三区乱码aⅴ| 色综合天天狠天天透天天伊人| 亚洲女人被黑人巨大进入| 国产亚洲综合久久| 久久露脸国产精品| 欧美精品在线看| 国产经典一区二区| 亚洲人线精品午夜| 中文字幕欧美视频在线| 亚洲区在线播放| 欧美成人h版在线观看| 精品欧美国产一区二区三区| 国产91久久婷婷一区二区| 国产69精品久久久久9| 久久久久久网站| 亚洲电影免费观看高清| 久久青草福利网站| 97精品一区二区三区| 亚洲va男人天堂| 97视频在线观看免费| 精品久久久久久中文字幕一区奶水| 久久69精品久久久久久久电影好| 永久免费看mv网站入口亚洲| 色综久久综合桃花网| 亚洲精品综合久久中文字幕| 久久久人成影片一区二区三区| 日韩av电影国产| 日韩美女免费观看| 国产精品一区av| 久久亚洲欧美日韩精品专区| 欧美老少做受xxxx高潮| 国内精品一区二区三区四区| 久久久久久尹人网香蕉| 一本一本久久a久久精品牛牛影视| 国产一区二区久久精品| 一道本无吗dⅴd在线播放一区| 国内外成人免费激情在线视频网站| 欧美在线视频导航| yw.139尤物在线精品视频| 日韩美女在线观看| 另类专区欧美制服同性| 中文国产成人精品| 日韩欧美在线国产| 国产成人精品久久亚洲高清不卡| 91极品女神在线| 98精品国产高清在线xxxx天堂| 国产久一一精品| 亚洲图片欧美日产| 久久夜色精品国产亚洲aⅴ| 国产丝袜一区二区三区| 国产精品黄页免费高清在线观看| 亚洲欧洲日产国码av系列天堂| 2023亚洲男人天堂| 色yeye香蕉凹凸一区二区av| 奇米四色中文综合久久| 亚洲精品黄网在线观看| 国产精品国产自产拍高清av水多| 久久久久久国产精品美女| 成人激情电影一区二区| 亚洲第一页自拍| 国产午夜一区二区| 亚洲欧美国产精品| 国内外成人免费激情在线视频网站| 国产一区二区在线免费视频| 亚洲精品美女在线|