js數組方法筆記
數組方法中會不會改變原數組的方法
concat()-----連接兩個或者多個數組,不會改變原數組
//concat()----數組拼接
var arr1 = [1],arr2 = [2],arr3 = [3],arr4 = [4];
var arr5 = arr1.concat(arr2); //兩個連接-數組arr1與arr2連接,結果[1,2]
var arr6 = arr1.concat(arr2, arr3, arr4); //多數組連接,結果[1,2,3,4]
var arr7 = arr1.concat(arr2, arr3, arr4, [6, 7]); //多數組與自定義數組連接,結果[1,2,3,4,6,7]
console.log(arr5)
console.log(arr6)
console.log(arr7)
console.log(arr1)
截圖
join()-----將數組轉換成字符串,並用指定字符隔開,不改變原數組
//join()---數組轉字符串,並用指定字符隔開---不改變原數組
var arr = [1, 2, 3, 4, 5, 6];
var str = arr.join(",");
console.log(str, arr); //1,2,3,4,5,6 [1, 2, 3, 4, 5, 6]
console.log(arr.join(",")); //數組轉換成字符串,使用逗號隔開,結果:1,2,3,4,5
console.log(arr.join("")); //數組轉換成字符串,結果:123456
截圖:
slice(start,end)---截取數組start到end,start:起始位置(包含起始位置),end:結束位置(不包含結束位置),原數組不發生改變
結束位置可不加,那截取的就是start到數組的最後一位
如果起始位置爲負數,那麼就從數組最後一位往前計算,-1:表示數組的最後一位,-2:數組的倒數第二位,以此類推(注:如果取
負數,那麼就沒有結束位置,否則截取到的數組爲空)
//slice(start,end)---截取數組start到end,start:起始位置(包含起始位置),end:結束位置(不包含結束位置),原數組不發生改變
//結束位置可不加,那截取的就是start到數組的最後一位
//如果起始位置爲負數,那麼就從數組最後一位往前計算,-1:表示數組的最後一位,-2:數組的倒數第二位,以此類推(注:如果取負數,那麼就沒有結束位置,否則截取到的數組爲空)
var arr = [1, 2, 3, 4, 5, 6, 7];
var arr2 = arr.slice(2, 5);
var arr3 = arr.slice(-1);
console.log(arr3, arr2, arr); //[7] [3,4,5] [1,2,3,4,5,6,7]
截圖:
toString()---將數組轉換成字符串,使用逗號分隔,原數組不發生改變
//toString()---將數組轉換成字符串,使用逗號分隔,原數組不發生改變
var arr = [1, 2];
console.log(arr.toString(), arr); //1,2 [1, 2]
toLocaleString()---數組轉字符串,使用逗號分隔,原數組不會發生改變
//toLocaleString---數組轉字符串,使用逗號分隔,原數組不會發生改變
var arr = [1, 2];
console.log(arr.toLocaleString(), arr);//1,2 [1, 2]
數組方法中會改變原數組的方法
pop()---刪除數組最後一位數,改變原數組,原數組最後一位刪除,length-1
//pop()---刪除數組最後一位數,改變原數組,原數組最後一位刪除,length-1
var arr = [1, 2, 3, 4, 5, 6];
var arr1 = arr.pop();
console.log(arr); //[1, 2, 3, 4, 5];
console.log(arr1); //6
截圖:
push()----數組末尾新增一個或多個元素,改變原數組,新數組爲原數組和新增元素的集合
var arr = [1, 2];
arr.push("測試");
console.log(arr);//[1,2,"測試"]
截圖:
reverse()---顛倒數組順序,原數組會發生改變
//reverse()---顛倒數組順序,原數組會發生改變
var arr = ["a", "b", "v", "d"]; //原數組
var arr1 = arr.reverse();
console.log(arr); //["d", "v", "b", "a"]
console.log(arr1); //["d", "v", "b", "a"]
截圖:
shift()-----刪除數組的第一個元素,原數組發生改變
//shift---刪除數組的第一個元素,改變原數組
var arr = [1, 2, 3, 4, 5, 6, 7];
var arr2 = arr.shift();
console.log(arr2, arr);//1 [2,3,4,5,6,7]
截圖:
sort()-----數組排序,sort的括號裏面接的必須是一個方法,原數組會發生改變,變成排序之後的結果
//sort()----數組排序,sort的括號裏面接的必須是一個方法,原數組會發生改變,變成排序之後的結果
var arr = [1, 3, 4, 6, 89, 90, 67];
function storby(a, b) {//使用普通的方法進行排序
return b - a;
}
console.log(arr.sort(storby)); //[90, 89, 67, 6, 4, 3, 1]
console.log(arr); //[90, 89, 67, 6, 4, 3, 1]
var arr1 = arr.sort((a, b) => b - a); //使用箭頭函數的方式排序
console.log(arr1); //[90, 89, 67, 6, 4, 3, 1]
// console.log(arr.sort((a, b) => b - a)); //數組排序,大到小排序--[1, 3, 4, 6, 67, 89, 90]
console.log(arr.sort()); //從小到大排序----[1, 3, 4, 6, 67, 89, 90]
截圖:
splice()---向數組中刪除/新增/替換元素,原數組會發生改變
//splice---向數組中刪除/新增元素,原數組會發生改變
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
//var arr2 = arr.splice(1, 4);//刪除數組中index 1-4的位置,起始位置和結束位置都包含
var arr3 = arr.splice(-1, 6, "12"); //刪除數組中index 1-3的位置,並從1的位置添加一個字符串元素 12
//console.log(arr, arr2); //[1, 6, 7, 8, 9] [2, 3, 4, 5]
console.log(arr, arr3); //[1, "12", 5, 6, 7, 8, 9] [2, 3, 4]
unshift()----向數組起始位置添加一個或多個元素,原數組發生改變,返回新數組的length
//unshift()----向數組起始位置添加一個或多個元素,原數組發生改變,返回新數組的length
var arr = [1, 2];
console.log(arr.unshift(1, 2, 3, 4), arr);//6 [1, 2, 3, 4, 1, 2]
js字符串方法
indexOf()----查找指定文本或者數組中某個元素是否存在(或者在字符串中首次出現的位置),如果存在就返回該數組的下標,不存在就返回-1
//indexOf()----查找數組中某個元素是否存在(在字符串中首次出現的位置),如果存在就返回該數組的下標,不存在就返回-1
var arr = [1, 2];
var str = "hello world!";
console.log(arr.indexOf(1));//0
console.log(str.indexOf("l")); //2
console.log(arr.indexOf(8));//-1
lastIndexOf()----查找指定文本或者數組中某個元素是否存在(或者在字符串中最後一次出現的位置),如果存在就返回該數組的下標,不存在就返回-1
//lastIndexOf()----查找文本或者數組中某個元素是否存在(或者在字符串中最後一次出現的位置),如果存在就返回該數組的下標,不存在就返回-1
var arr = [1, 2, 1, 3, 4, 5, 6, 2];
var str = "hello world!";
console.log(arr.lastIndexOf(2)); //7
console.log(str.lastIndexOf("l")); //9
console.log(str.lastIndexOf("m")); //-1
search()----搜索指定文本在字符串中出現的位置,不管裏面有幾個相同的,從前往後搜索到即停止搜索,搜索到則返回指定文本下標,沒搜索到則返回-1;
與indexOf用法基本相同
不同的是indexOf可對數組進行操作,但是search不能對數組進行操作
search可用於正則表達式中,indexOf不能
//search()----搜索指定文本在字符串中出現的位置,不管裏面有幾個相同的,從前往後搜索到即停止搜索,搜索到返回指定文本下標,沒搜索到返回-1;
//與indexOf相同,不同的是indexOf可對數組進行操作,但是search不能對數組進行操作
var str = "hello world!";
var arr = [1, 2, 3];
console.log(str.search("l")); //2
console.log(str.search("m")); //-1
//console.log(arr.search(1)); //arr.search is not a function
slice(start,end)----截取字符串的某一部分,從start位開始截取到end位(包括起始位置不包括結束位置),可以是負數,當爲負數的時候,就是從最後一位(-1)開始一直到第一位(-length),ie8及更早的版本不支持負數
//slice()----截取字符串的某一部分
var str = "hello world";
console.log(str.slice(1, 3), str); //el hello world
console.log(str.slice(-9, -3)); //llo wo,從倒數第9位截取到倒數第三位
console.log(str.slice(-9)); //llo world,從倒數第9位開始截取後面所有的
substring(strat,end)----截取字符串的某一部分,start位開始截取到end位(包括起始位置不包括結束位置),與slice方法類似,但是不能接收負數
var str = "hello world";
console.log(str.substring(1, 3), str); //el hello world
substr(start,length)----截取字符串的某一部分,start開始截取到length個(包括起始位置),與slice方法類似,可以接收負數
//substr(start,length)----截取字符串的某一部分,與slice方法類似
var str = "hello world";
console.log(str.substr(1, 3), str); //ell hello world
console.log(str.substr(-9, 3)); //llo 從倒數第9位開始向後截取3位
console.log(str.substr(-9)); //llo world,從倒數第9位開始截取後面所有的
未完待續...