一.返回新數(shù)組的方法:
1,arr.concat():可以有多個參數(shù),并按順序連接到數(shù)組尾部,返回新數(shù)組。
2,arr.slice():截取數(shù)組元素,兩個參數(shù),分別是其實(shí)下標(biāo)和結(jié)束下標(biāo)。返回被截取的子數(shù)組。
3,arr.join():將數(shù)組中的元素連接成字符串。參數(shù)是使用的連接符,返回連接后的字符串。
二,改變原數(shù)組的方法:
1,arr.push():將一個或多個元素添加到數(shù)組尾部中,返回添加后數(shù)組的長度。
2,arr.unshift(): 可以包含多個參數(shù),并將這些參數(shù)一次性添加到數(shù)組的頭部。
3,arr.shift():將數(shù)組的第一個元素移除,并返回該元素的值,不需要參數(shù)。
4,arr.pop():刪除數(shù)組最后一個元素,返回這個元素的值,不需要參數(shù)。
5,arr.sort():數(shù)組排序,默認(rèn)從小到大,返回排序后的數(shù)組,不需要參數(shù)。
6,arr.splice():增刪數(shù)組,不管幾個參數(shù),返回的都是被刪除的元素組成的子數(shù)組。
無參數(shù):不執(zhí)行任何操作。
一個參數(shù):僅執(zhí)行刪除操作,從參數(shù)所代表的下標(biāo)開始,刪除所有的元素。返回刪除的元素。
兩個參數(shù):第一個為開始執(zhí)行操作的下標(biāo),第二個為刪除參數(shù)的個數(shù)。
三個參數(shù):第一個為開始執(zhí)行操作下標(biāo),第二個為刪除元素的個數(shù),剩下的全部是在刪除元素位置添加的元素。
7,arr.reverse():顛倒數(shù)組排序,不需要參數(shù),返回翻轉(zhuǎn)后的數(shù)組。
三,數(shù)組轉(zhuǎn)換成字符串的方法:
1,join(""):引號無空格,直接轉(zhuǎn)換成字符串,例如:"123456";
2,join(","):引號逗號,轉(zhuǎn)換成字符串,以逗號連接。
3,toString():能將數(shù)組中的每個元素轉(zhuǎn)換成字符串,以逗號連接輸出。
4,toLocaleString():把數(shù)組轉(zhuǎn)換成局部字符串。中國大陸的習(xí)慣,其將數(shù)字轉(zhuǎn)換成浮點(diǎn)數(shù),再轉(zhuǎn)換成字符串輸出。例如:"1.00,2.00,3.00,4.00"。
四,字符串轉(zhuǎn)換成數(shù)組:
split():兩個參數(shù),第一個為分割標(biāo)記,第二個為指定要返回?cái)?shù)組的長度。
split(""):引號無空格,則將數(shù)組的每個元素都轉(zhuǎn)換成字符串。
split(",") 和 split(" "):引號有空格,引號逗號,將數(shù)組的所有元素轉(zhuǎn)換成一個字符串。
例:
var str="245897";
console.log(str.split("")); //["2", "4", "5", "8", "9", "7"]
console.log(str.split(" ")); //["245897"]
五,字符串方法:
1.substr(start,length) :可在字符串中抽取從 start 下標(biāo)開始的指定長度的字符串,有兩個參數(shù),第一個為開始操作下標(biāo),第二個為截取長度。
var str="245897";
console.log(str.substr(2,4)); //5897
2.indexOf(searchElement,[fromIndex]): 查找第一個匹配項(xiàng),返回下標(biāo),沒找到,返回-1;第一個參數(shù)必選,第二個參數(shù)可選。
var str="245897";
console.log(str.indexOf("5")); //2
console.log(str.indexOf("6")); //-1
3.lastIndexOf():查找最后一個匹配項(xiàng),返回下標(biāo),沒找到,返回-1;
var str="2458979";
console.log(str.lastIndexOf(9));
4.concat(str1,str2,...):連接多個字符串,返回連接后的新字符串。
var str="2458979";
var str2 = "0000";
console.log(str.concat(str2));//24589790000
console.log(str); //2458979
5.match(regex):搜索字符串,并返回正則表達(dá)式的所有匹配
6.replace(str1,str2):str1也可以為正則表達(dá)式,用str2替換str1
var re = /apples/gi;
var str = "Apples are round, and apples are juicy.";
var newstr = str.replace(re, "oranges");
console.log(newstr);// oranges are round, and oranges are juicy.
7.search(regex):基于正則表達(dá)式搜索字符串,并返回第一個匹配的位置
var str="hello world!"
str.search(/world/);//6
str.search(/Hello/);//-1
8.slice(start,end):返回字符索引在start和end(不含)之間的子串。
var str="12455436";
console.log(str.slice(2,4));
9.split(separator,limit):以將字符串分隔為子字符串?dāng)?shù)組,以確定每個拆分的位,在字符串中去除第一個參數(shù),其他的組成字符串?dāng)?shù)組的元素。原字符串不改變。
var str="12455436";
console.log(str.split(2,5)); // ["1", "455436"]
console.log(str); //12455436
10.substring(indexStart, indexEnd):返回字符索引在start ,end(不含)之間的子串。
var str="12455436";
console.log(str.substring(3,6)); // 554
11.toLowerCase():將字符串轉(zhuǎn)換為小寫
12.toUpperCase():將字符串轉(zhuǎn)換為大寫
13.valueOf():返回原始字符串值
var str="2458979";
console.log(str.split("")); //["2", "4", "5", "8", "9", "7", "9"]
console.log(str.valueOf());//2458979
數(shù)組,字符串遍歷方法:
1.forEach
-
arr.forEach(callbackfn,thisArg):forEach 方法不改變原始數(shù)組,但會回調(diào)函數(shù)會改變。 -
callbackfn:必選參數(shù),醉倒可以接收三個,對于數(shù)組中的元素,forEach都會調(diào)用函數(shù)一次。參數(shù)有三個:forEach(item,index,arr):item當(dāng)前元素,index當(dāng)前下標(biāo)索引,arr當(dāng)前操作數(shù)組。
thisArg:可選參數(shù),callbackfn函數(shù)中的this可引用對象。如果忽略這個參數(shù),則undefined 將當(dāng)做this的值。 -
注意:forEach會遍歷數(shù)組中的每個元素,
return和break都不能提前結(jié)束循環(huán) -
callbackfn回調(diào)函數(shù)語法:
function callbackfn(value,index,array)
value:數(shù)組的元素
index:數(shù)組元素的索引
array:包含該元素的對象
例:使用forEach循環(huán),求數(shù)組中各元素之和。
var arr = [4,5,7,4,3,3];
var sum = 0;
arr.forEach(function addarr(value){
sum += value;
});
console.log(sum);
2.every
- 確定數(shù)組所有成員是否滿足指定的測試。
-
arr.every(calllbackfn,thisArg):參數(shù)用法同forEach,但回調(diào)函數(shù)的返回值不同。 - every的callbackfn函數(shù)為數(shù)組中所有的元素時,返回true,否則返回false;
- 回調(diào)函數(shù)語法與forEach相同。直到數(shù)組返回false結(jié)束。
例,檢測數(shù)組中的元素還是否都是偶數(shù)。
function cheakEvery(value,index,arr){
if(value %2 == 0)
return true;
else
return false;
}
var arr = [2,5,9,0,3,12,6,4];
if(arr.every(cheakEvery)){
alert("都是偶數(shù)");
}
else
alert("不全是偶數(shù)");
3.some
- 用于確定的回調(diào)函數(shù)是否為數(shù)組中的任何元素都返回true。
-
arr.some(calllbackfn,thisArg):參數(shù)用法同forEach。 - some的callbackfn函數(shù)為數(shù)組中所有的元素時,返回true,否則返回false;
例:檢測數(shù)組中的元素是否都為奇數(shù)。
function cheakSome(value,index,arr){
if(value %2 == 0)
return true;
}
var arr = [2,5,9,0,3,12,6,4];
if(arr.every(cheakSome)){
alert("不全是奇數(shù)");
}
else
alert("都是奇數(shù)");
4.map
- 對每個元素都調(diào)用定義的會調(diào)函數(shù)并返回包含該結(jié)果的數(shù)組。
-
arr.map(calllbackfn,thisArg):參數(shù)用法同forEach。 - map 方法將返回一個新數(shù)組,其中每個元素均為關(guān)聯(lián)的原始數(shù)組的回調(diào)函數(shù)返回值。對數(shù)組中的每個元素,都進(jìn)行同一操作,后返回醉成新數(shù)組。
例:將數(shù)組中的每個元素都平方。
var arr = [2,0,12,7];
var res = arr.map(function fun(value) {
return value*10;
});
console.log(res);
5.filter
- 返回?cái)?shù)組中滿足回調(diào)函數(shù)中指定條件的元素。
- arr.filter(calllbackfn,thisArg):參數(shù)用法同forEach。
- 過濾不滿足條件的元素,返回為true的元素組成的數(shù)組。
例1:過濾掉數(shù)組中的字符串元素。
var arr = [2,true,"yubao",10,"fanfan"];
var res = arr.filter(function arrfilter(value){
return (typeof value == 'sting');
});
console.log(res); //[2, true, 10]
例2:找到每個字符串的首字母,并返回。
function checkValue(value, index,arr){
if(index == 0 )
return true;
else
return arr[index -1] === " ";
}
var str = "The day is hot and long So I want go home.";
var res = [].filter.call(str,checkValue);
console.log(res); //["T", "d", "i", "h", "a", "l", "s", "I", "w", "g", "h"]
6.reduce
- 匯總數(shù)組元素值。
-
arr.reduce(callbackfn,[initialValue]):最多四個參數(shù)
callbackfn:必選參數(shù),對于每個元素都會回調(diào)一次。
initialValue:可選參數(shù),如果指定initialValue,則將他作為累計(jì)的初始值。 - 回調(diào)函數(shù)的語法:
- function callbackfn(perviousValue,currentValue,currentIndex,array)
perviousValue:上一次回調(diào)得到的值
currentValue:當(dāng)前元素的值
currentIndex:當(dāng)前元素的下標(biāo)
var arr = [1,5,3,2,4,7,9];
var res =arr.reduce( function arrsum(perviousValue,currentValue){
return perviousValue+currentValue;
}) ;
console.log(res);