数组拓展方法
- forEach()
- map()
- filter()
- reduce()
- some()/every()
- instanceof()
- isArray()
- toLocaleString() toString() valueOf()
- join()
forEach
作用:遍历数组(value,index,array),没有返回值
value——表示数组当中每一个成员
index——表示数组对应成员的下标
array——表示原数组
//定义一个数组
var arr = [1,2,4,5,6];
var col = [];
col = arr.forEach(function (v) {
return v;
})
console.log(col);//返回新数组把堆的指向地址赋给空数组
map
作用:遍历数组(value,index,array),返回一个新的数组,有返回值
value——表示数组当中每一个成员
index——表示数组对应成员的下标
array——表示原数组
//求平方 以及各种数学运算
var arr = [1,2,4,5,6];
var col = [];
col = arr.map(function (v) {
return v*v;
})
console.log(col);
filter
作用:过滤 遍历数组(value,index,array),返回一个新的数组,有返回值
value——表示数组当中每一个成员
index——表示数组对应成员的下标
array——表示原数组
//过滤
var app = ['毒人','缉毒人','你好毒','梅丽莎','嘟嘟'];
var list = app.filter(function(v){
return v.indexOf('毒')>-1;
})
console.log(list);
reduce
作用:归并 遍历数组(value,index,array),返回一个新的数组,有返回值
prev——第一个参数表示第一个数组成员值
next——第二个参数表示最后一个数组成员值
value——表示数组当中每一个成员
index——表示数组对应成员的下标
array——表示原数组
//阶乘 数组求和 以及各种数学运算
var arr = [1,2,4,5,6];
var col = [];
col = arr.reduce(function (a,b,value,index) {
return a*b;//阶乘
return a+b;//数组求和
})
console.log(col);
some
作用:对数组中每一项进行给定函数,如果任意一项都返回true,则返回true
value——表示数组当中每一个成员
index——表示数组对应成员的下标
array——表示原数组
var arr = [1,2,4,5,6];
var col = [];
col = arr.some(function (value,index) {
return value>1;
})
console.log(col);//true
indexOf() lastIndexOf()
作用:返回在数组中可以找到一个给定元素的对应下标,如果不存在,则返回-1
//第一个参数是数组检索的元素
//第二个参数是从数组中返回第几个该元素的下标
var arr = [1,2,4,5,6,2,3,4,5,7];
console.log(arr.indexOf(1));//返回下标0
console.log(arr.indexOf(9));//数组未检索到该值返回-1
console.log(arr.indexOf(2,2));//返回下标5
console.log(arr.lastIndexOf(5));//返回下标8
console.log(arr.lastIndexOf(0));//返回-1
console.log(arr.lastIndexOf(4,2))//返回下标2
检测数组
ES3的方法:instanceof()
var values = [1,2,3];
if(values instanceof Array){
//对数组进行某些操作
}
ES5的方法:isArray()
var values = [1,2,3];
if(Array.isArray(values)){
//对数组进行某些操作
}
转换方法
1 toLocaleString() toString() valueOf()
var number = 1337;
var date = new Date();
var myArr = [number, date, "foo"];
var str = myArr.toLocaleString();
console.log(str);
// 输出 "1,337,2017/8/13 下午8:32:24,foo"
// 假定运行在中文(zh-CN)环境,北京时区
2 join() 将数组转换为字符串,且用分隔符分割
var colors = [1,2,3];
alert(colors.join("|")); // 1|2|3