跳到主要內容

[鐵人賽] JavaScript Array 介紹 - Node.js Day 8

JavaScript Array

前言

今天要討論 Array,在 Array 是個很重要的物件型態,在 JavaScript 裡面有許多 Array 好用的方式,這次將會為大家介紹 Array 優秀之處。

內文

陣列也是屬於 JavaScript 的原生物件之一,在實際開發會有許多時候需要使用 Array 的方法,先來介紹一下陣列要怎麼宣告。

陣列宣告

宣告方式,
var a=['a', 'b', 'c'];

var a=new Array('a', 'b', 'c');
以上這兩種方式都可以宣告成陣列,接著我們將 a 這個變數印出來看一下,
console.log(a);
//print: [0, 1, 2]
Array 的排列指標從 0 開始,像上面的例子來說, a 的指標就有三個,0, 1, 2,如果要印出特定的某個陣列數值,使用方法,
console.log(a[1]);
//print: b
如果要判斷一個變數是不是 Array 最簡單的方式就是直接使用 Array 的原生方法,
var a=['a', 'b', 'c'];

console.log(Array.isArray(a));
//print: true

var b='a';
console.log(Array.isArray(b));
//print: false
如果要取得陣列變數的長度可以直接使用,
console.log(a.length);
length 為一個常數,型態為 Number,會列出目前陣列的長度。

pop, shift

以前面所宣告的陣列為範例,
var a=['a', 'b', 'c'];
使用 pop 可以從最後面取出陣列的最後一個值。
console.log(a.pop());
//print: c

console.log(a.length);
//print: 2
同時也可以注意到,使用 pop 這個方法之後,陣列的長度內容也會被輸出。
另外一個跟 pop 很像的方式就是 shift,
console.log(a.shift());
//print: a

console.log(a.length);
//print: 1
shift 跟 pop 最大的差異,就是從最前面將數值取出,同時也會讓呼叫的陣列少一個數組。

slice

前面提到 pop, shift 就不得不說一下 slice,使用方式,
console.log(a.slice(1,3));
//print: 'b', 'c'
第一個參數為起始指標,第二個參數為結束指標,會將這個陣列進行切割,變成一個新的陣列型態。 如果需要給予新的變數,就可以這樣子做,完整的範例。
var a=['a', 'b', 'c'];

var b=a.slice(1,3);

console.log(b);
//print: 'b', 'c'

concat

concat 這個方法,可以將兩個 Array 組合起來,
var a=['a'];

var b=['b', 'c'];

console.log(a.concat(b));
//print: 'a', 'b', 'c'
concat 會將陣列組合,之後變成全新的數組,如果以例子來說,a 陣列希望變成 ['a', 'b', 'c'],可以重新將數值分配給 a,範例來說
a = a.concat(b);

Iterator

陣列資料,必須要有 Iterator,將資料巡迴一次,通常是使用迴圈的方式,
var a=['a', 'b', 'c'];

for(var i=0; i < a.length; i++) {
    console.log(a[i]);
}

//print: a
//       b
//       c
事實上可以用更簡單的方式進行,
var a=['a', 'b', 'c'];

a.forEach(function (val, idx) {
    console.log(val, idx);
});

/*
print:
a, 0
b, 1
c, 2
*/
在 Array 裡面可以使用 foreach 的方式進行 iterator, 裡面給予的 function (匿名函式),第一個變數為 Array 的 Value, 第二個變數為 Array 的指標。

結語

陣列大致上就先介紹到此為止,在實戰應用的時候,會有更多時間點使用 Array 的原生型態,或者進行 Array 的組合分割技巧,在這邊就先以基本的 Array 方法為主。
明天會進入 function, class 的方法,這些部份,有些東西漸漸的會變得比較隱晦,我也不想去解釋太多,畢竟這邊是以實戰為主,就一起來期待明天吧!

留言

這個網誌中的熱門文章

[分享] 腳踏車環島注意事項

很多人都期望自己能夠做點什麼,做些什麼,而退伍之後的第二個星期,就展開了環島之旅。 對很多人來說這不算什麼,甚至有人展開了走路、跑步、溜滑板、單輪車等方式環島一周,充分展現對台灣的愛與關懷。 這篇主要讓不知道怎麼準備環島的人,作一個完善的解說,首先隨身的東西要有: 證件現金類 : 身份證 健保卡 學生證 現金 提款卡 悠遊卡

直播錄影設備大公開 - 從線下轉線上到底要哪些裝備

直播錄影設備分享 蠻多朋友都在敲碗詢問,到底一場直播需要準備哪些設備,這邊聽筆者娓娓道來, 網路 好的網路上天堂,壞的網路會讓你掉落到不知道什麼地方。 會建議大家至少是一個獨立的 4G 訊號,意味著當下至少要有 30MB/s 的上傳下載,這樣在透過 Google Meet / Zoom 視訊會議的時候是比較不會卡頓的狀態。 Google Meet 輔助文件 有提到關於頻寬的最低需求, 對位於 8.8.8.8. 的 Google 公用 DNS 伺服器執行連線偵測 (ping) 測試時,延遲時間應低於 50 毫秒。 參與者的上傳訊號 (無論通訊人數多寡) 應符合 3.2 mbps 的頻寬需求。 抓在這樣的標準之上會是比較穩定的, 如果你的需求是要透過 OBS 同時播出到 youtube live / Facebook live 和多個頻道的時候,會建議需要更高頻寬,最好是連接有線網路的狀況下尤佳。 總之,網路越快越好,直接光纖肯定沒錯!(可惜我家無法 …T_T 麥克風 直接說答案,這邊採用的是   Rode Wireless go 購買網址: https://24h.pchome.com.tw/prod/DGCF07-A900B6O2U 沒有考慮類似圓剛 av310 或者 BlueYite 之類的,主要是因為可能當初規劃會有起身轉場可能,且可以支援一對多的方式進行訪談式收音。 但很可惜的是,沒有朋友!(威 Rode Wireless go 的優勢在於內建獨立麥克風,可直接夾在領夾上,或者連接更好的收音麥克風,當作訊號源來處理,可變化性蠻大的,但對於聲音細緻度,可能就沒辦法要求到這麼多,總之是不同面向考量下的選擇。 燈光 首先燈光會比攝影機要重要許多許多許多,一個好的麥克風,加上好的燈光,基本上背景只要稍微設置一下,就可以美美搭。 6 寸桌上型 LED 網美燈 購買網址: https://24h.pchome.com.tw/prod/DGCF2O-A900AFG98?fq=/S/DGCF2O 道蝦皮找應該可以找到許多更便宜的,以目前來說 6 寸網美 LED 環形燈來說算是堪用,為什麼會說堪用,如果場景允許,實際上再加上左右補光會讓畫面呈現效果更佳。 目前上述的需求,都是以大頭照拍攝,或者半身的需求為主。 如果說要拍到全身的話,基本上就是直上攝影用補光燈,這就不在此範圍內

[教學] 快快樂樂刪除CodeIgniter index.php

預設的CI網址預設都設定為index.php同一層級,因此所有的程式都必須指定index.php導向才能開始,例如 http://localhost/ci/index.php/welcome/test http://localhost/ci/welcome/test 本文將說明如何將惱人的index.php消除,還你一個漂亮的URL。 設定開始: 接下來說明如何使用rewrite方式將惱人的index.php去除。 rewrite不清楚的人,煩請先自行google 首先要先確定Apache的 mod_rewrite 有 開啟 ,如果沒有開啟請設定好之後重新啟動apache。 接著,在根目錄底下建立一個新檔案,檔名為 .htaccess ,裡面程式碼如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> 接著到 application/config/config.php ,開啟檔案修改 $config['index_page'] = ""; 注意: /index.php/$1 要根據你目錄,例如 http://localhost/index.php ,網站根目錄為 /ci/index.php 則要寫成 /ci/index.php/$1 接著至CI目錄下,尋找 config\config.php , 修改一下裡面的檔案,修改如下: $config['index_page'] = ""; 存檔後,如此一來大功告成。 參考資料 官方網站說明