前臺界面(3)--- 字元串和數組

来源:http://www.cnblogs.com/sxw117886/archive/2017/02/20/6419550.html
-Advertisement-
Play Games

目錄 1. 字元串 1.1. 字元串中的轉義序列 1.2. 字元串的不可變性 1.3. 字元串索引 1.4. 字元串分割:split 1.5. 數組連接成字元串:join 2. 數組 2.1. 數組索引 2.2. 多維數組 2.3. 數組方法 2.3.1. 數據追加到數組的尾部push() 函數 2 ...


目錄

1. 字元串

1.1. 字元串中的轉義序列

1.2. 字元串的不可變性

1.3. 字元串索引

1.4. 字元串分割:split

1.5. 數組連接成字元串:join

2. 數組

2.1. 數組索引

2.2. 多維數組

2.3. 數組方法

2.3.1. 數據追加到數組的尾部push() 函數

2.3.2. 移除數組最後一個元素pop() 函數

2.3.3. 移出數組第一個元素shift()函數

2.3.4. 加入到數組頭部一個元素unshift()函數

2.3.5. 迭代數組:map

2.3.6. 數組的累加:reduce

2.3.7. 過濾數組:filter

2.3.8. 數組排序:sort

2.3.9. 翻轉數組:reverse

2.3.10. 合併數組:concat

-----------------------黃金分割線----------------------

1. 字元串

1.1. 字元串中的轉義序列

引號不是字元串中唯一的可以被轉義字元。下麵是常見的轉義序列列表:

Code

Output

\'

單引號

\"

雙引號

\\

反斜杠符

\n

換行符

\r

回車符

\t

製表符

\b

退格符

\f

換頁符

註意,如果你想要顯示一個反斜杠就必須要轉義它。

1.2. 字元串的不可變性

JavaScript 中,字元串 的值是 不可變的,這意味著一旦字元串被創建就不能被改變。

例如,下麵的代碼:

var myStr = "Bob";
myStr[0] = "J";

是不會把變數 myStr 的值改變成 "Job" 的,因為變數 myStr 是不可變的。註意,這 並不 意味著 myStr 永遠不能被改變,只是字元串字面量 string literal 的各個字元不能被改變。改變 myStr 中的唯一方法是重新給它賦一個值,就像這樣:

var myStr = "Bob";
myStr = "Job";

1.3. 字元串索引

你也可以使用 [索引]來獲得一個字元串中的其他位置的字元。

請記住,程式是從開始計數,所以獲取第一個字元實際上是[0]。

為了得到一個字元串的最後一個字元,你可以用[字元串的長度減去一]

例如,在 var firstName = "Charles" 中,你可以這樣操作 firstName[firstName.length - 1] 來得到字元串的最後的一個字元。

我們既可以獲取字元串的最後一個字元,也可以用獲取字元串的倒數第N個字元。

例如,你可以這樣firstName[firstName.length - 3] 操作來獲得 var firstName = "Charles" 字元串中的倒數第三個字元。

1.4. 字元串分割:split

你可以使用 split 方法按指定分隔符將字元串分割為數組。

你要給 split 方法傳遞一個參數,這個參數將會作為一個分隔符。

下麵的例子展示了 split 方法的使用,按照 s字母進行分割:

var array = string.split('s');

使用 split 方法來把字元串 string 分割為數組 array

1.5. 數組連接成字元串:join

我們還可以使用 join 方法來把數組轉換成字元串,裡面的每一個元素可以用你指定的連接符來連接起來,這個連接符就是你要傳入的參數。

下麵展示了使用 join 來將數組中的每一項放入字元串,並用 and 進行連接:

var veggies = ["Celery", "Radish", "Carrot", "Potato"];
var salad = veggies.join(" and ");
console.log(salad); // "Celery and Radish and Carrot and Potato"

使用 join 方法,連接符為' '把數組 joinMe轉化成字元串 joinedString.

 

2. 數組

使用 數組,我們可以在一個地方存儲多個數據。

以左方括弧[開始定義一個數組,以右方括弧]結束定義,並把每個條目之間用逗號隔開,就像這樣:
var sandwich = ["peanut butter", "jelly", "bread"]

你也可以在數組中包含其他數組,就像這樣:[["Bulls", 23], ["White Sox", 45]]。這被稱為一個 多維數組。

2.1. 數組索引

我們可以像操作字元串一樣通過數組索引[index]來訪問數組中的數據。

數組索引的使用與字元串索引一樣,不同的是,通過字元串的索引得到的是一個字元,通過數組索引得到的是一個條目。與字元串類似,數組也是 基於零 的索引,因此數組的第一個元素的索引是 0

與字元串的數據不可變不同,數組的數據是可變的,並且可以自由地改變。

例如

var ourArray = [3,2,1];
ourArray[0] = 1; // ourArray等於 [1,2,1]

2.2. 多維數組

可以把 多維 數組看作成是一個 數組中的數組。當使用[]去訪問數組的時候,第一個[index]訪問的是第N個子數組,第二個[index]訪問的是第N個子數組的第N個元素。

例如

var arr = [
[1,2,3],
[4,5,6],
[7,8,9],
[[10,11,12], 13, 14]
];
arr[0]; // 等於 [1,2,3]
arr[1][2]; // 等於 6
arr[3][0][1]; // 等於 11

2.3. 數組方法

2.3.1. 數據追加到數組的尾部push() 函數

一個簡單的方法將數據追加到一個數組的末尾是通過 push() 函數。

.push() 接受把一個或多個參數,並把它“推”入到數組的末尾。

var arr = [1,2,3];
arr.push(4);
// 現在arr的值為 [1,2,3,4]

2.3.2. 移除數組最後一個元素pop() 函數

改變數組中數據的另一種方法是用 .pop() 函數。

.pop() 函數用來“拋出”一個數組末尾的值。我們可以把這個“拋出”的值賦給一個變數存儲起來。

數組中任何類型的條目(數值,字元串,甚至是數組)可以被“拋出來”。

舉個例子, 對於這段代碼
var oneDown = [1, 4, 6].pop();
現在 oneDown 的值為,數組變成了 [1, 4]

2.3.3. 移出數組第一個元素shift()函數

pop() 函數用來移出數組中最後一個元素。如果想要移出第一個元素要怎麼辦呢?

這就是 .shift() 的用武之地。它的工作原理就像 .pop(),但它移除的是第一個元素,而不是最後一個。

2.3.4. 加入到數組頭部一個元素unshift()函數

你不僅可以 shift(移出)數組中的第一個元素,你也可以 unshift(移入)一個元素到數組的頭部。

.unshift() 函數用起來就像 .push() 函數一樣, 但不是在數組的末尾添加元素,而是在數組的頭部添加元素。

2.3.5. 迭代數組:map

map 方法可以方便的迭代數組,例子:

var timesFour = oldArray.map(function(val){
  return val * 4;
});

map 方法會迭代數組中的每一個元素,並根據回調函數來處理每一個元素,最後返回一個新數組。註意,這個方法不會改變原始數組。

在我們的例子中,回調函數只有一個參數,即數組中元素的值 (val 參數) ,但其實,你的回調函數也可以支持多個參數,譬如:元素的索引index、原始數組arr

使用 map 方法來為 oldArray 中的每一項增加3,並且在 newArray 中保存它們。 oldArray不應該被改變。

2.3.6. 數組的累加:reduce

數組方法 reduce 用來迭代一個數組,並且把它累積到一個值中。

使用 reduce 方法時,你要傳入一個回調函數,這個回調函數的參數是一個 累加器 (比如例子中的 previousVal) 和當前值 (currentVal)。

reduce 方法有一個可選的第二參數,它可以被用來設置累加器的初始值。如果沒有在這定義初始值,那麼初始值將變成數組中的第一項,而 currentVal 將從數組的第二項開始。

下麵的例子使用了 reduce 來讓數組中的所有值相減:

var singleVal = array.reduce(function(previousVal, currentVal) {
  return previousVal - currentVal;
}, 0);

使用 reduce 方法來讓 array 中的所有值相加,並且把結果賦值給 singleVal 

2.3.7. 過濾數組:filter

filter 方法用來迭代一個數組,並且按給出的條件過濾出符合的元素。

filter 方法傳入一個回調函數,這個回調函數會攜帶一個參數,參數為當前迭代的項(我們叫它 val )。

回調函數返回 true 的項會保留在數組中,返回false 的項會被過濾出數組。

下麵的代碼示例展示了使用 filter 來移除數組中值等於5的項:

註意: 我們忽略了第二參數和第三參數,因為例子中我們只需要第一參數就夠了。

array = array.filter(function(val) {
  return val !== 5;
});

使用 filter 來創建一個新數組,新數組的值是oldArray 中值小於6的元素。不許改變原數組oldArray 

2.3.8. 數組排序:sort

使用 sort 方法,你可以很容易的按字母順序或數字順序對數組中的元素進行排序。

與我們之前用的數組方法僅僅返回一個新數組不同, sort 方法將改變原數組,返回被排序後的數組。

sort 可以把比較函數作為參數傳入。比較函數有返回值,當小於 b,返回一個負數;當 a大於,返回一個正數;相等時返回0。

如果沒有傳入比較函數,它將把值全部轉成字元串,並按照字母順序進行排序。

下麵的例子將展示 sort 的使用,傳入的比較函數把元素按照從小到大的順序進行排列:

var array = [1, 12, 21, 2];
array.sort(function(a, b) {
  return a - b;
});

使用 sort 按照從大到小的順序排序 array 

2.3.9. 翻轉數組:reverse

你可以使用 reverse 方法來翻轉數組。

var myArray = [1, 2, 3];
myArray.reverse();

結果myArray 變成了 [3, 2, 1]

使用 reverse 來翻轉 array 數組。並賦值給newArray.

2.3.10. 合併數組:concat

concat 方法可以用來把兩個數組的內容合併到一個數組中。

concat 方法的參數應該是一個數組。參數中的數組會拼接在原數組的後面,並作為一個新數組返回。

下麵是一個拼接數組的例子,用concat otherArray 拼接在 oldArray 的後面:

newArray = oldArray.concat(otherArray);

使用 .concat()  concatMe 拼接到 oldArray後面,並且賦值給 newArray

最後最後最後,重要的事情說三遍,來著是客,如果您覺得好就推薦或評論下,覺得不好希望能得到您的建議,繼續改善,您的支持就是對我最大的鼓勵.


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 什麼是NuGet? [NuGet][](讀作New Get)是用於微軟.NET開發平臺的軟體包管理器,是一個Visual Studio的擴展。在使用Visual Studio開發基於.NET Framework的應用時,NuGet能夠令你在項目中添加、移除和更新引用的工作變得更加快捷方便。 通過Nu ...
  • 一.認識Redis1. Redis 是一個高性能的key-value資料庫。 2. 它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。 3.周期性的把更新的數據寫入磁碟或者把修改操作 ...
  • 寒假在家無聊,找了一本還不錯的電子書來學習, 一是複習了以前最初學的一些基本類, 二是學一些那時候老師沒有教的東西, 看的書是pdf的所以下麵全部都是手打出來的,有什麼錯誤在所難免。 其實一個寒假只看了這麼一點還是很懶惰的。 放上來以後自己好查。以後空閑了還可以看看。 快捷鍵 Ctrl + Ente ...
  • 目前在用ASP.NET的 WebAPI2來做後臺介面開發,在與前臺做測試的時候,總是需要發送一個demo給他,但是這樣很麻煩的,他還有可能記不住。 然後就想到SwaggerUI 生成測試文檔。 話不多說,來看看它的具體用法吧! 第一步: 在VS2015(後者是你自己的工具里)打開程式包管理控制台輸入 ...
  • 1,關於欄位不匹配時候想要具體看哪個欄位DbEntityValidationException 類。 2,一般我們傳特殊符號時候自動編碼轉移System.Web.HttpUtility.UrlDecode(model.selgrade)。 ...
  • 1、鏈接例子: string url = "http://domainName:port/1/2/3/4.htm?sysCode=1001020&token=QXJzemR3YXlWdm9YMFhneFU0c2tqSXp6YmJqMVNQSUVlWndEbm9yellBNHp5SXBmK2gxVGx ...
  • 新建的mvc4 項目,然後從其他項目里拷貝shared文件夾和_ViewStart.cshtml文件過去,然後在@符號上出現“沒有為擴展名“.cshtml”註冊的生成提供程式” ...
  • 這是在Rudy Huyn的blog上看到的, "Status" 是在win10上才出現的屬性, 用來區分系統還是挺有效的。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...