JavaScript -- 常用的數組及字串方法

來源:互聯網
上載者:User

標籤:刪除   spl   more   編碼   unshift   item   不同   end   替代   

數組
var arr= new Array();arr.push();     //在數組尾部添加一個元素,返回新的長度     *原數組發生變化arr.pop();      //刪除最後一個元素,返回的是被刪除的元素    *原數組發生變化arr.unshift();      //在頭部添加一個元素,返回長度      *原數組發生變化arr.shift();        //刪除數組第一個元素,返回被刪除的元素  *原數組發生變化arr.concat();     //添加元素或數組,返回一個一維數組,可用來合并數組arr.join();     //將數組內的元素用()內的符號串連起來返回一個字串arr.reverse();      //顛倒數組中的元素              *原數組發生變化arr.sort();     //將數組元素排序,如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序  *原變arr.slice(x,y);     //  返回數組中的一部分,根據下標,前包後不包 arr.splice();//例arr.splice(x);    //數組保留x位,其餘的刪除arr.splice(2,0,100);  //在arr第2個元素後面,刪除0個,插入100,返回的是被刪除的元素

es6新增

(1)複製數組

// 寫法一const a2 = [...a1];// 寫法二const [...a2] = a1;

(2)合并數組

// ES5[1, 2].concat(more)// ES6[1, 2, ...more]

(3)字串

擴充運算子還可以將字串轉為真正的數組。

[...‘hello‘]// [ "h", "e", "l", "l", "o" ]

Array.of方法用於將一組值,轉換為數組

Array.of基本上可以用來替代Array()或new Array(),並且不存在由於參數不同而導致的重載。它的行為非常統一。

Array.of(3, 11, 8) // [3,11,8]

copyWithin在當前數組內部,將指定位置的成員複製到其他位置(會覆蓋原有成員),然後返回當前數組。也就是說,使用這個方法,會修改當前數組。

[1, 2, 3, 4, 5].copyWithin(0, 3)// [4, 5, 3, 4, 5]// -2相當於3號位,-1相當於4號位[1, 2, 3, 4, 5].copyWithin(0, -2, -1)// [4, 2, 3, 4, 5]

find,findIndex

數組執行個體的find方法,用於找出第一個合格數群組成員。它的參數是一個回呼函數,所有數群組成員依次執行該回呼函數,直到找出第一個傳回值為true的成員,然後返回該成員。如果沒有合格成員,則返回undefined。

[1, 4, -5, 10].find((n) => n < 0)   //-5[1, 5, 10, 15].find(function(value, index, arr) {  return value > 9;}) // 10

另外,這兩個方法都可以發現NaN,彌補了數組的indexOf方法的不足。

[NaN].indexOf(NaN)// -1[NaN].findIndex(y => Object.is(NaN, y))// 0

fill使用給定值,填充一個數組。

[‘a‘, ‘b‘, ‘c‘].fill(7)// [7, 7, 7]new Array(3).fill(7)// [7, 7, 7]

fill方法還可以接受第二個和第三個參數,用於指定填充的起始位置和結束位置。

[‘a‘, ‘b‘, ‘c‘].fill(7, 1, 2)// [‘a‘, 7, ‘c‘]

數組執行個體的findIndex方法的用法與find方法非常類似,返回第一個合格數群組成員的位置,如果所有成員都不符合條件,則返回-1。

entries(),keys()和values()——用於遍曆數組。它們都返回一個遍曆器對象,可以用for...of迴圈進行遍曆,唯一的區別是keys()是對鍵名的遍曆、values()是對索引值的遍曆,entries()是對索引值對的遍曆。

for (let index of [‘a‘, ‘b‘].keys()) {  console.log(index);}// 0// 1for (let elem of [‘a‘, ‘b‘].values()) {  console.log(elem);}// ‘a‘// ‘b‘for (let [index, elem] of [‘a‘, ‘b‘].entries()) {  console.log(index, elem);}// 0 "a"// 1 "b"

includes表示某個數組是否包含給定的值

[1, 2, 3].includes(2)     // true[1, 2, 3].includes(4)     // false[1, 2, NaN].includes(NaN) // true

該方法的第二個參數表示搜尋的起始位置,預設為0。如果第二個參數為負數,則表示倒數的位置,如果這時它大於數組長度(比如第二個參數為-4,但數組長度為3),則會重設為從0開始。

[1, 2, 3].includes(3, 3);  // false[1, 2, 3].includes(3, -1); // true
字串
var str=new String("abvdefg");str.indexOf(‘abc‘);   //返回指定字元第一次出現的位置,沒有返回-1str.lastIndexOf(‘w‘);    //返回指定字元最後一次出現的位置,沒有返回-1str.slice(startIndex,endIndex);     //返回匹配到的字串,前包後不包str.substr(startIndex,length);      //返回一個字串str.charAt(x);      //返回指定索引位置的字元str.charCodeAt();   //返回在指定的位置的字元的 Unicode 編碼。str.split();        //把字串分割為字串數組,()內可寫Regex(‘‘)將每個元素按照數組中的每個元素分割str.toLowerCase();      //把字串轉換為小寫。str.toUpperCase();      //把字串轉換為大寫

es6新增

//for...of字串遍曆器介面for(let item of str){    console.log(item)}str.includes(x)     //返回布爾值,表示是否找到了參數字串。str.startsWith(x)       //返回布爾值,表示參數字串是否在原字串的頭部。str.endsWith(x)     //返回布爾值,表示參數字串是否在原字串的尾部。這三個方法都支援第二個參數,表示開始搜尋的位置,參數如果是小數,會被取整。。如:str.startsWith(‘f‘, 2) // true使用第二個參數x時,endsWith的行為與其他兩個方法有所不同。它針對前x個字元,而其他兩個方法針對從第x個位置直到字串結束。str.repeat(x);      //返回一個新字串,表示將原字串重複x次。padStart(),padEnd如果某個字串不夠指定長度,會在頭部或尾部補全,一共接受兩個參數,第一個參數用來指定字串的最小長度,第二個參數是用來補全的字串。‘x‘.padStart(4, ‘ab‘) // ‘abax‘‘x‘.padEnd(5, ‘ab‘) // ‘xabab‘如果原字串的長度,等於或大於指定的最小長度,則返回原字串。‘xxx‘.padEnd(2, ‘ab‘) // ‘xxx‘如果省略第二個參數,預設使用空格補全長度。‘x‘.padStart(4) // ‘   x‘如果用來補全的字串與原字串,兩者的長度之和超過了指定的最小長度,則會截去超出位元的補全字串。‘abc‘.padStart(10, ‘0123456789‘)  //// ‘0123456abc‘另一個用途是提示字串格式。‘12‘.padStart(10, ‘YYYY-MM-DD‘) // "YYYY-MM-12"‘09-12‘.padStart(10, ‘YYYY-MM-DD‘) // "YYYY-09-12"

JavaScript -- 常用的數組及字串方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.