2018-07-30 刷題總結(jié)(數(shù)組,字符串)

一.返回新數(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ù)組中的每個元素,returnbreak都不能提前結(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);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Javascript有很多數(shù)組的方法,有的人有W3C的API,還可以去MDN上去找,但是我覺得API上說的不全,M...
    頑皮的雪狐七七閱讀 4,499評論 0 6
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,569評論 0 13
  • 我站在云底,我留在這里。 在廢墟荒地,在低洼山崎。 讓電流不息,讓燈火美麗。 在窗下剪影,在高架橋里。 讓世俗規(guī)定...
    鬼斗七顆星閱讀 434評論 2 4
  • 有時覺得絕望,卻又從未真正放棄,總是試圖尋找那一股清泉,再灌注枯萎的心脈,索性我都能找到,在書中,唯有書讓所...
    南南向北閱讀 504評論 4 13
  • 文 :漫橋煙雨 再也不見吧 我的三十歲男孩 狂亂的崇拜 拉扯著心懷 再見吧 觸不到的愛
    漫橋煙雨閱讀 219評論 7 7

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