數(shù)組、字符串常用方法

字符串

字符串的創(chuàng)建:

var str = "abc";
var str = new String();

將任意類型的值轉(zhuǎn)換成字符串:

Var a = 10;
Var str = a.toString(); //string
Var str1 = “”+a; //string
Var str2 = String(a);//string

除了 slice() 和 substr() 方法里的負(fù)值是代表從右截取,其他方法里的負(fù)值一律作為0處理

  1. charCodeAt方法返回一個(gè)整數(shù),代表指定位置字符的Unicode編碼。
    Str.charCodeAt(index);如果指定位置沒有字符,返回NaN;
var str = "abc";
console.log(str.charCodeAt(3));//NaN
  1. fromCharCode方法從一些Unicode字符串中返回一個(gè)字符串。

  2. charAt方法返回指定索引位置處的字符。如果超出有效范圍的索引值返回空字符串。

  3. slice方法返回字符串的片段。

strObj.slice(start[,end]) 

start下標(biāo)從0開始的strObj指定部分起始索引。如果start為負(fù),將它作為length+start處理,此處length為字符串的長(zhǎng)度。 

end小標(biāo)從0開始的strObj指定部分結(jié)束索引。如果end為負(fù),將它作為length+end處理,此處length為字符串的長(zhǎng)度。
var str = "abc";
var str1 = str.slice(0,-2);
var str2 = str.slice(-1);
console.log(str1,str2);//a c

5、substring方法返回位于String對(duì)象中指定位置的子字符串

strObj.substring(start,end) 

    start指明子字符串的起始位置,該索引從0開始起算。 
        
    end指明子字符串的結(jié)束位置,該索引從0開始起算。 
        
    substring方法使用start和end兩者中的較小值作為子字符串的起始點(diǎn)。如果start或end為NaN或者為負(fù)數(shù),那么將其替換為0。

6、substr方法返回一個(gè)從指定位置開始的指定長(zhǎng)度的子字符串。

    strObj.substr(start[,length]) 
    start所需的子字符串的起始位置。字符串中的第一個(gè)字符的索引為0。 
    length在返回的子字符串中應(yīng)包括的字符個(gè)數(shù)。 
    var str = "ABCDEF"; 
    str.substr(2,4); //CDEF ;

7、indexOf方法返回String對(duì)象內(nèi)第一次出現(xiàn)子字符串位置。如果沒有找到子字符串,則返回-1。

lastindexOf()方法從尾部開始尋找對(duì)象中第一次出現(xiàn)子字符串的位置

    strObj.indexOf(substr[,startIndex]) 
    substr要在String對(duì)象中查找的子字符串。 
    startIndex該整數(shù)值指出在String對(duì)象內(nèi)開始查找的索引。如果省略,則從字符串的開始處查找。 
    var str = "ABCDECDF"; 
    str.indexOf("CD",1); // 由1位置從左向右查找 123... 結(jié)果:2 

8、search方法返回與正則表達(dá)式查找內(nèi)容匹配的第一個(gè)字符串的位置。

    strObj.search(reExp) 
    reExp包含正則表達(dá)式模式和可用標(biāo)志的正則表達(dá)式對(duì)象。 
    var str = "ABCDECDF"; 
    str.search("CD"); // 或 str.search(/CD/i); 結(jié)果:2 

9、concat方法返回字符串值,該值包含了兩個(gè)或多個(gè)提供的字符串的連接。

    str.concat([string1[,string2...]]) 
    string1,string2要和所有其他指定的字符串進(jìn)行連接的String對(duì)象或文字。 
    var str = "ABCDEF"; 
    str.concat("ABCDEF","ABC"); 
    結(jié)果:ABCDEFABCDEFABC

10、Split將一個(gè)字符串分割為子字符串,然后將結(jié)果作為字符串?dāng)?shù)組返回。

    strObj.split([separator[,limit]]) 
    separator字符串或 正則表達(dá)式 對(duì)象,它標(biāo)識(shí)了分隔字符串時(shí)使用的是一個(gè)還是   多個(gè)字符。如果忽略該選項(xiàng),返回包含整個(gè)字符串的單一元素?cái)?shù)組。 
    limit該值用來限制返回?cái)?shù)組中的元素個(gè)數(shù)。 
    var str = "AA BB CC DD EE FF"; 
    alert(str.split(" ",3)); 
    結(jié)果: AA,BB,CC 

11、 toLowerCase方法用于將一個(gè)字符串全部轉(zhuǎn)為小寫

toUpperCase則是全部轉(zhuǎn)為大寫。

它們都返回一個(gè)新字符串,不改變?cè)址?/p>

console.log(" hello word ".trim());
//hello world
console.log('Hello World'.toLowerCase());
// "hello world"
console.log('Hello World'.toUpperCase());
// "HELLO WORLD"

12、trim(): 用于去除字符串兩端的空白,返回一個(gè)新字符串 不改變?cè)瓟?shù)據(jù)

console.log(' hello world '.trim()); //hello word

13、replace 返回被替換的字符串

str.replace(rgExp/substr,replaceText)  

數(shù)組

數(shù)組的概念:有序的元素的集合 使用數(shù)字作為索引的一個(gè)對(duì)象 索引為從0開始的整數(shù)

創(chuàng)建方式

1、構(gòu)造數(shù)組 var arr = new Array();

向數(shù)組中添加元素:數(shù)組[索引] = 值;
讀取數(shù)組 數(shù)組[索引] 當(dāng)索引值比數(shù)組長(zhǎng)度大時(shí),會(huì)返回undefined;
數(shù)組長(zhǎng)度:數(shù)組.length;

var arr1 = new Array();
arr1[0] = 1;
arr1.length = 10;
console.log(arr1,arr1.length); //如果修改的length大于原長(zhǎng)度,則多出部分會(huì)空出來;
arr1.length = 2;
console.log(arr1,arr1.length); //如果修改的length小于原長(zhǎng)度,則多出的部分會(huì)刪除;

2、字面量創(chuàng)建數(shù)組 var arr = [];

中括號(hào)里邊可以直接添加元素(可以是任意類型的數(shù)據(jù)類型);

數(shù)組的操作方法

1、push() 可以接收任意數(shù)量的參數(shù),把他們逐個(gè)添加到數(shù)組末尾,并返回修改后數(shù)組的長(zhǎng)度

2、Pop() 數(shù)組末尾移除最后一項(xiàng),減少數(shù)組的LENGTH值,并返回被刪除的元素

3、Unshift() 在數(shù)組的頭部添加一個(gè)或者多個(gè)元素,返回增加后數(shù)組的長(zhǎng)度

4、Shift() 從數(shù)組的頭部刪除一個(gè)元素并返回這個(gè)刪除的元素,如果數(shù)組為空則返回undefined;

5、Slice()返回從原數(shù)組中指定開始下標(biāo)到結(jié)束下標(biāo)之間的項(xiàng)組成的新數(shù)組。

slice()方法可以接受一或兩個(gè)參數(shù),即要返回項(xiàng)的起始和結(jié)束位置。
在只有一個(gè)參數(shù)的情況下, slice()方法返回從該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng)。
如果有兩個(gè)參數(shù),該方法返回起始和結(jié)束位置之間的項(xiàng)——但不包括結(jié)束位置的項(xiàng)。
var a = arr(0,2);
第二個(gè)參數(shù)可以是負(fù)值:則從后往前截取 -1:最后一個(gè)

6、splice:

刪除:可以刪除任意數(shù)量的項(xiàng),只需指定 2 個(gè)參數(shù):要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)。例如, splice(0,2)會(huì)刪除數(shù)組中的前兩項(xiàng)。

插入:可以向指定位置插入任意數(shù)量的項(xiàng),只需提供 3 個(gè)參數(shù):起始位置、 0(要?jiǎng)h除的項(xiàng)數(shù))和要插入的項(xiàng)。例如,splice(2,0,4,6)會(huì)從當(dāng)前數(shù)組的位置 2 開始插入4和6。

替換:可以向指定位置插入任意數(shù)量的項(xiàng),且同時(shí)刪除任意數(shù)量的項(xiàng),只需指定 3 個(gè)參數(shù):起始位置、要?jiǎng)h除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng)。插入的項(xiàng)數(shù)不必與刪除的項(xiàng)數(shù)相等。例如,splice (2,1,4,6)會(huì)刪除當(dāng)前數(shù)組位置 2 的項(xiàng),然后再?gòu)奈恢?2 開始插入4和6。
splice()方法始終都會(huì)返回一個(gè)數(shù)組,該數(shù)組中包含從原始數(shù)組中刪除的項(xiàng),如果沒有刪除任何項(xiàng),則返回一個(gè)空數(shù)組。

7、join()

將數(shù)組的元素組成一個(gè)字符串
不會(huì)對(duì)原數(shù)據(jù)產(chǎn)生影響,會(huì)把轉(zhuǎn)化后的字符串作為結(jié)果返回
在join()中可以指定一個(gè)字符串作為參數(shù),這個(gè)字符串將會(huì)作為數(shù)組中元素的連接符,如果不指定連接符,默認(rèn)為逗號(hào)

8、reverse():
用來反轉(zhuǎn)數(shù)組,前面的去后面,后面的去前面;

9、Sort() 對(duì)數(shù)組成員進(jìn)行排序,默認(rèn)按照字典順序排序,原數(shù)組會(huì)改變

arr.sort(function (a,b){
return a-b;//升序
})

sort的參數(shù)函數(shù)本身接受兩個(gè)參數(shù),表示進(jìn)行比較的兩個(gè)數(shù)組成員。如果該函數(shù)的返回值大于0,表示第一個(gè)成員排在第二個(gè)成員后面;其他情況下,都是第一個(gè)元素排在第二個(gè)元素前面

10、concat() :將參數(shù)添加到原數(shù)組中。

這個(gè)方法會(huì)先創(chuàng)建當(dāng)前數(shù)組一個(gè)副本,然后將接收到的參數(shù)添加到這個(gè)副本的末尾,最后返回新構(gòu)建的數(shù)組。在沒有給 concat()方法傳遞參數(shù)的情況下,它只是復(fù)制當(dāng)前數(shù)組并返回副本。 

11、indexOf():接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引。其中, 從數(shù)組的開頭(位置 0)開始向后查找。

12、lastIndexOf:接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引。其中, 從數(shù)組的末尾開始向前查找。

這兩個(gè)方法都返回要查找的項(xiàng)在數(shù)組中的位置,或者在沒找到的情況下返回-1。在比較第一個(gè)參數(shù)與數(shù)組中的每一項(xiàng)時(shí),會(huì)使用全等操作符。

13、forEach():對(duì)數(shù)組進(jìn)行遍歷循環(huán),對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)。這個(gè)方法沒有返回值。參數(shù)都是function類型,默認(rèn)有傳參,參數(shù)分別為:遍歷的數(shù)組內(nèi)容;對(duì)應(yīng)的數(shù)組索引,數(shù)組本身。

var arr = [1,2,6,4];//1 0 true;2 1  true;6 2 true;4 3 true
arr.forEach(function (x,index,a){
    console.log(x+" "+index+" "+(a===arr));
})

14、map():指“映射”,對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。

var arr1 = [32,5,11,12];
var arr = arr1.map(function (x){
    return x+3
})
console.log(arr);  //[35,8,14,15]

15、filter(): 用于過濾數(shù)組成員,滿足條件的成員組成一個(gè) 新數(shù)組返回 原數(shù)組不變
它的參數(shù)是一個(gè)函數(shù),所有數(shù)組成員一次執(zhí)行,返回結(jié)果為 true 的元素組成一個(gè)新數(shù)組返回
第一個(gè)參數(shù):當(dāng)前成員
第二個(gè)參數(shù):當(dāng)前成員的索引
第三個(gè)參數(shù):整個(gè)數(shù)組

var arr2 = [21,152,66,565];
var arr3 = arr2.filter(function (x,index){
    return x % 3 == 0;
})
console.log(arr3);//[21,66];

15、every():判斷數(shù)組中每一項(xiàng)都是否滿足條件,只有所有項(xiàng)都滿足條件,才會(huì)返回true。

16、some():判斷數(shù)組中是否存在滿足條件的項(xiàng),只要有一項(xiàng)滿足條件,就會(huì)返回true。

 //every
var arr4 = [26,641,15312,63,1];
var arr5 = arr4.every(function (x){
    return x > 1;
})
console.log(arr5);//false
//some
var arr7 = arr4.some(function (x){
    return x > 1;
})
console.log(arr7);//true

17、reduce(): 將內(nèi)部的返回值作為實(shí)參傳遞第一個(gè)形參,進(jìn)行下一次運(yùn)算

var arr =[1,2,3,5]
var sum = arr.reduce(function(a,b){
return a+b;
});
console.log(sum); //1+2+3+5=11
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容