陣列與字串

2021-08-26 17:44:39 字數 3747 閱讀 7606

var arr = [1,2,3,4];

var n = arr.push(5);

console.log(n);//返回5

console.log(arr);//返回[1,2,3,4,5]

var arr = [1,2,3,4];

var num = arr.pop();

console.log(num);//返回4

console.log(arr);//返回[1,2,3]

var arr = [1,2,3,4];

var arr2 = arr.unshift(0);

console.log(arr2);//返回5

console.log(arr);//返回[0,1,2,3,4]

var arr = [1,2,3,4];

var num = arr.shift();

console.log(num);//返回1

console.log(arr);//返回[2,3,4]

var arr = [1,2,3,4]

var arr2 = arr.reverse();

console.log(arr);//返回[4,3,2,1]

console.log(arr2);//返回[4,3,2,1]

var arr = [1,2,3,4,5];

var arr1 = arr.splice(1,3);

console.log(arr1);//返回[2,3,4]

console.log(arr);//返回[1,5]

/*******************/

var arr2 = [1,2,3,4,5];

var arr3 = arr2.splice(1,3,6);

console.log(arr3);//返回[2,3,4]

console.log(arr2);//返回[1,6,5]

var arr = ['14','1','2','4','12']

arr.sort()

//返回 ["1", "12", "14", "2", "4"]

,ascii碼排序,是逐位進行比較的,只說兩個例子如12和14,第一位的1相同,第二位的4大於2,所以14大於12;對於14和2,第一位的1小於2,所以不用再比,14小於2。

上例算是sort排序的bug。如何解決呢,sort排序給出了乙個引數,這個引數是乙個函式,例子如下

var arr = [1,7,4,5,9,2];

arr.sort(function

(a,b))

var arr = ['14','1','2','4','12']

arr.sort((a,b)=>)

//返回 ["1", "2", "4", "12", "14"]

什麼意思呢?sort是根據內部函式的返回值進行排序,內部函式返回值大於零就是公升序,小於零就是逆序。每次從陣列中去兩個元素,當作內部函式的實參,傳進去,如果a>b那麼返回值就是大於零的,也就是公升序,反之異然(字串的比較會被隱式轉換為數字型別)。

好了,以上幾種均會改變原陣列,不再多說。

2、不改變原陣列的方法

var arr = [1,2,3];

arr.concat(0);

console.log(arr);//這裡是個坑哦

記住只有congcat操作後的返回值是新陣列,原陣列並未改變。用個變數接收var arr2 = arr.concat(0);這裡才會得到新陣列,即:[1,2,3,0];

- join是將陣列按照傳入的引數連線成乙個字串,如果沒有引數,就按照逗號連線。

如下:

var arr = [1,2,3,4];

var arr2 = arr.join('-');

var arr3 = arr.join();

console.log(arr2);//返回字串'1-2-3-4'

console.log(arr3);//返回字串'1,2,3,4'

console.log(arr);//返回原陣列[1,2,3,4]

var arr = [1,2,3,4];

var num = arr.slice(1,2);

var num2 = arr.slice(1,3);

console.log(num);//[2]

console.log(num2);//[2,3]

console.log(arr);//[1,2,3,4]

var str = 'abcd';

var n = str.indexof('b');

console.log(n);//返回數字1

var n2 = str.indexof('b',2);

console.log(n2);

var str = 'abcd';

var n = str.lastindexof('b');

console.log(n);//返回數子1

var str = 'abcde';

var str1 = str.slice(1,2);

var str2 = str.slice(1,3);

console.log(str1);//返回b

console.log(str2);//返回bc

var str = 'a-b-c-d';

var arr = str.split('-');

var arr2 = str.split('-',3);

console.log(arr);//返回[a,b,c,d]

console.log(arr2);//返回[a,b,c]

再提另外三個模式匹配:

replace(reg,str);reg為正規表示式,用str替換掉符合reg正則條件的字串。返回值是乙個新的字串,是用 str 替換了 reg 的第一次匹配或所有匹配之後得到的

//例子

var str="hello world!"

document.write(str.replace(/world/, "nodejs"));

match(reg);reg為正規表示式,查詢符合此正則的字串,返回查詢到的結果陣列。查詢乙個或多個符合條件的結果,依賴全域性匹配符/g

var str="hello world!"

console.log(str.match(/o/));//返回['o']

console.log(str.match(/o/g));//返回['o','o']

search(reg);返回第一次找到符合正則的字串的位置,沒有匹配到返回-1。會忽略全域性匹配標誌g。

//例子

var str="hello world!"

console.log(str.search(/e/));//返回1

console.log(str.search(/o/));//返回4

console.log(str.search(/world/));//返回6

先說麼多…….

字元陣列與字串

字元陣列與字串 字串就是字元的序列,可看作單個資料項。定義在雙引號之間的字元組 雙引號除外 就是乙個字串常量。例 man is abviously made to think 字串變數的宣告與初始化 c語言並不支援字串資料型別。但是,它允許作為字元陣列來表示字串。因此在c語言中,字串變數就是任何合法...

字元陣列與字串

字元陣列與字串 6.3.1 字元陣列的逐個字元操作 案例6.5 從鍵盤輸入乙個字串,回車鍵結束,並將字串在螢幕上輸出。main i 0 while str x0d printf c str i printf n getch 1 字元陣列的定義 1維字元陣列,用於儲存和處理1個字串,其定義格式與1維數...

字元陣列與字串

char str 6 char str2 6 world printf s n str scanf s str2 for i 0 str i 0 i 說明 系統為了明確區分記憶體上的字串從屬關係,它會去尋找空字元,ascii嗎為0 我們稱為結束符,從陣列名指標位一直往後找,知道找到空字元為止。既然字...