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);

你可能感兴趣的:(2018-07-30 刷题总结(数组,字符串))