寫此文原因: 1.快速復(fù)習(xí) 2.數(shù)組太多操作,防止混淆
常用數(shù)組操作
splice():此方法通過刪除現(xiàn)有元素和/或添加新元素來更改數(shù)組的內(nèi)容.
- 注意: splice() 方法與 slice() 方法的作用是不同的,splice() 方法會(huì)直接對(duì)數(shù)組進(jìn)行修改。
- 返回值
由被刪除的元素組成的一個(gè)數(shù)組。如果只刪除了一個(gè)元素,則返回只包含一個(gè)元素的數(shù)組。如果沒有刪除元素,則返回空數(shù)組。
實(shí)例:
var myFish = ["angel", "clown", "mandarin", "surgeon"];
//從第 2 位開始刪除 0 個(gè)元素,插入 "drum"
var removed = myFish.splice(2, 0, "drum");
//運(yùn)算后的 myFish:["angel", "clown", "drum", "mandarin", "surgeon"]
//被刪除元素?cái)?shù)組:[],沒有元素被刪除
slice():此方法返回一個(gè)從開始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個(gè)新數(shù)組對(duì)象,原始數(shù)組不會(huì)被修改.
截取數(shù)組里的部分元素
示例:
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var citrus = fruits.slice(1, 3);
// fruit 輸出 ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']:原始數(shù)組不會(huì)被修改
// citrus 輸出 ['Orange','Lemon']
**push(): **此方法將一個(gè)或多個(gè)元素添加到數(shù)組的末尾,并返回?cái)?shù)組的新長度.
在數(shù)組里新增元素
- 返回值
返回新數(shù)組的長度,即:length的值.
示例:
var sports = ["soccer", "baseball"];
var total = sports.push("football", "swimming");
console.log(sports);
// ["soccer", "baseball", "football", "swimming"]
console.log(total);
// 4
concat(): 方法用于合并兩個(gè)或多個(gè)數(shù)組,此方法不會(huì)更改現(xiàn)有數(shù)組,而是返回一個(gè)新數(shù)組.
連接2個(gè)或多個(gè)數(shù)組,返回新數(shù)組
- 返回值
新的Array實(shí)例
示例:
連接兩個(gè)數(shù)組
下面的代碼演示兩個(gè)數(shù)組合并為一個(gè)新數(shù)組:
var alpha = ["a", "b", "c"];
var numeric = [1, 2, 3];
// 組成新數(shù)組 ["a", "b", "c", 1, 2, 3]; 原數(shù)組 alpha 和 numeric 未被修改
var alphaNumeric = alpha.concat(numeric);
join():方法將數(shù)組(或一類數(shù)組對(duì)象)的所有元素連接到一個(gè)字符串中
數(shù)組以符號(hào)分割,轉(zhuǎn)為字符串
- join() 方法,不會(huì)改變數(shù)組
**例子: **
下例首先創(chuàng)建了一個(gè)數(shù)組 a,包含有三個(gè)元素,然后用四種不同的分隔符連接所有數(shù)組元素。
var a = ['Wind', 'Rain', 'Fire'];
var myVar1 = a.join(); // myVar1的值變?yōu)?Wind,Rain,Fire"
var myVar2 = a.join(', '); // myVar2的值變?yōu)?Wind, Rain, Fire"
var myVar3 = a.join(' + '); // myVar3的值變?yōu)?Wind + Rain + Fire"
var myVar4 = a.join(''); // myVar4的值變?yōu)?WindRainFire"
常用字符串操作
slice():提取字符串的一部分
例子
使用 slice() 創(chuàng)建一個(gè)新的字符串
下面例子使用 slice() 來創(chuàng)建新字符串:
var str1 = 'The morning is upon us.';
var str2 = str1.slice(4, -2);
console.log(str2); // OUTPUT: morning is upon u
**split() **方法將一個(gè)String對(duì)象分割成字符串?dāng)?shù)組,通過
將字符串分成子串
- 當(dāng)字符串為空時(shí),split 返回一個(gè)包含一個(gè)空字符串的數(shù)組,而不是一個(gè)空數(shù)組。
"Webkit Moz O ms Khtml".split( " " )
// ["Webkit", "Moz", "O", "ms", "Khtml"]
以空格分割.
**substring() **方法返回一個(gè)字符串在開始索引到結(jié)束索引之間的一個(gè)子集, 或從開始索引直到字符串的末尾的一個(gè)子集
var anyString = "Mozilla";
// 輸出 "Moz"
console.log(anyString.substring(0,3));
**replace()
**方法返回一個(gè)由替換值替換一些或所有匹配的模式后的新字符串。模式可以是一個(gè)字符串或者一個(gè)[正則表達(dá)式]替換值可以是一個(gè)字符串或者一個(gè)每次匹配都要調(diào)用的函數(shù)。
var str = 'abcdeabcde';
console.log(str.replace('a', 'A'));//‘Abcdeabcde';部分替換
console.log(str.replace(/a/, 'A'));
如果第一個(gè)參數(shù)傳入的全局匹配的正則表達(dá)式,
那么replace()將會(huì)對(duì)符合條件的子字符串進(jìn)行多次替換,
最后返回經(jīng)過多次替換的結(jié)果字符串。
var str = 'abcdeabcdeABCDE';
console.log(str.replace(/a/gi, ')); //返回AbcdeAbcdeABCDE
console.log(str.replace(/a/g, 'A')); //返回$bcde$bcde$BCDE