2018-07-30 刷题总结(数组,字符串)

一.返回新数组的方法:
1,arr.concat():可以有多个参数,并按顺序连接到数组尾部,返回新数组。
2,arr.slice():截取数组元素,两个参数,分别是其实下标和结束下标。返回被截取的子数组。
3,arr.join():将数组中的元素连接成字符串。参数是使用的连接符,返回连接后的字符串。

二,改变原数组的方法:
1,arr.push():将一个或多个元素添加到数组尾部中,返回添加后数组的长度。
2,arr.unshift(): 可以包含多个参数,并将这些参数一次性添加到数组的头部。
3,arr.shift():将数组的第一个元素移除,并返回该元素的值,不需要参数。
4,arr.pop():删除数组最后一个元素,返回这个元素的值,不需要参数。
5,arr.sort():数组排序,默认从小到大,返回排序后的数组,不需要参数。
6,arr.splice():增删数组,不管几个参数,返回的都是被删除的元素组成的子数组。
无参数:不执行任何操作。
一个参数:仅执行删除操作,从参数所代表的下标开始,删除所有的元素。返回删除的元素。
两个参数:第一个为开始执行操作的下标,第二个为删除参数的个数。
三个参数:第一个为开始执行操作下标,第二个为删除元素的个数,剩下的全部是在删除元素位置添加的元素。
7,arr.reverse():颠倒数组排序,不需要参数,返回翻转后的数组。

三,数组转换成字符串的方法:
1,join("")引号无空格,直接转换成字符串,例如:"123456";
2,join(","):引号逗号,转换成字符串,以逗号连接。
3,toString():能将数组中的每个元素转换成字符串,以逗号连接输出。
4,toLocaleString():把数组转换成局部字符串。中国大陆的习惯,其将数字转换成浮点数,再转换成字符串输出。例如:"1.00,2.00,3.00,4.00"。

四,字符串转换成数组:
split():两个参数,第一个为分割标记,第二个为指定要返回数组的长度。
split(""):引号无空格,则将数组的每个元素都转换成字符串。
split(",") 和 split(" "):引号有空格,引号逗号,将数组的所有元素转换成一个字符串。
例:

    var str="245897";
    console.log(str.split("")); //["2", "4", "5", "8", "9", "7"]
    console.log(str.split(" ")); //["245897"]

五,字符串方法:
1.substr(start,length) :可在字符串中抽取从 start 下标开始的指定长度的字符串,有两个参数,第一个为开始操作下标,第二个为截取长度。

    var str="245897";
    console.log(str.substr(2,4));  //5897

2.indexOf(searchElement,[fromIndex]): 查找第一个匹配项,返回下标,没找到,返回-1;第一个参数必选,第二个参数可选。

  var str="245897";
  console.log(str.indexOf("5"));   //2
  console.log(str.indexOf("6")); //-1

3.lastIndexOf():查找最后一个匹配项,返回下标,没找到,返回-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):搜索字符串,并返回正则表达式的所有匹配
6.replace(str1,str2):str1也可以为正则表达式,用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):基于正则表达式搜索字符串,并返回第一个匹配的位置

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):以将字符串分隔为子字符串数组,以确定每个拆分的位,在字符串中去除第一个参数,其他的组成字符串数组的元素。原字符串不改变。

   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():将字符串转换为小写
12.toUpperCase():将字符串转换为大写
13.valueOf():返回原始字符串值

    var str="2458979";
    console.log(str.split("")); //["2", "4", "5", "8", "9", "7", "9"]
    console.log(str.valueOf());//2458979 

数组,字符串遍历方法:

1.forEach

  • arr.forEach(callbackfn,thisArg):forEach 方法不改变原始数组,但会回调函数会改变。
  • callbackfn:必选参数,醉倒可以接收三个,对于数组中的元素,forEach都会调用函数一次。参数有三个:forEach(item,index,arr):item当前元素,index当前下标索引,arr当前操作数组。
    thisArg:可选参数,callbackfn函数中的this可引用对象。如果忽略这个参数,则undefined 将当做this的值。
  • 注意:forEach会遍历数组中的每个元素,returnbreak都不能提前结束循环
  • callbackfn回调函数语法:
    function callbackfn(value,index,array)
    value:数组的元素
    index:数组元素的索引
    array:包含该元素的对象

例:使用forEach循环,求数组中各元素之和。

var arr = [4,5,7,4,3,3];
var sum = 0;
arr.forEach(function  addarr(value){
      sum += value;
});
console.log(sum);

2.every

  • 确定数组所有成员是否满足指定的测试。
  • arr.every(calllbackfn,thisArg):参数用法同forEach,但回调函数的返回值不同。
  • every的callbackfn函数为数组中所有的元素时,返回true,否则返回false;
  • 回调函数语法与forEach相同。直到数组返回false结束。
    例,检测数组中的元素还是否都是偶数。
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("都是偶数");
}
else
      alert("不全是偶数");

3.some

  • 用于确定的回调函数是否为数组中的任何元素都返回true。
  • arr.some(calllbackfn,thisArg):参数用法同forEach。
  • some的callbackfn函数为数组中所有的元素时,返回true,否则返回false;
    例:检测数组中的元素是否都为奇数。
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("不全是奇数");
}
else
     alert("都是奇数");

4.map

  • 对每个元素都调用定义的会调函数并返回包含该结果的数组。
  • arr.map(calllbackfn,thisArg):参数用法同forEach。
  • map 方法将返回一个新数组,其中每个元素均为关联的原始数组的回调函数返回值。对数组中的每个元素,都进行同一操作,后返回醉成新数组。
    例:将数组中的每个元素都平方。
    var arr = [2,0,12,7];
    var res = arr.map(function fun(value) {
        return value*10;
    });
    console.log(res);

5.filter

  • 返回数组中满足回调函数中指定条件的元素。
  • arr.filter(calllbackfn,thisArg):参数用法同forEach。
  • 过滤不满足条件的元素,返回为true的元素组成的数组。
    例1:过滤掉数组中的字符串元素。
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

  • 汇总数组元素值。
  • arr.reduce(callbackfn,[initialValue]):最多四个参数
    callbackfn:必选参数,对于每个元素都会回调一次。
    initialValue:可选参数,如果指定initialValue,则将他作为累计的初始值。
  • 回调函数的语法:
  • function callbackfn(perviousValue,currentValue,currentIndex,array)
    perviousValue:上一次回调得到的值
    currentValue:当前元素的值
    currentIndex:当前元素的下标
var arr = [1,5,3,2,4,7,9];
var res =arr.reduce( function arrsum(perviousValue,currentValue){
     return perviousValue+currentValue;
}) ;
console.log(res);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,062评论 0 6
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,114评论 0 13
  • 我站在云底,我留在这里。 在废墟荒地,在低洼山崎。 让电流不息,让灯火美丽。 在窗下剪影,在高架桥里。 让世俗规定...
    鬼斗七颗星阅读 387评论 2 4
  • 有时觉得绝望,却又从未真正放弃,总是试图寻找那一股清泉,再灌注枯萎的心脉,索性我都能找到,在书中,唯有书让所...
    南南向北阅读 471评论 4 13
  • 文 :漫桥烟雨 再也不见吧 我的三十岁男孩 狂乱的崇拜 拉扯着心怀 再见吧 触不到的爱
    漫桥烟雨阅读 154评论 7 7