一.返回新数组的方法:
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会遍历数组中的每个元素,
return
和break
都不能提前结束循环 -
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);