新增Array对象方法
Array
- map
map方法将原数组映射为一个新的数组,返回结果为一个新的数组
如下示例
将原数组与映射成布尔数组
let arr = [45,60,78,42.56,80];
let res = arr.map(function(item,index){
return item>60;
})
console.log(arr,res);
还可以获取某一数组对象特定属性值
let obj = [
{name:'test',age:13,sex:'m'},
{name:'test2',age:13,sex:'w'},
{name:'test3',age:18,sex:'w'},
];
let res = obj.map(function(item){
return item.age;
})
console.log(obj,res);
- forEach 有了这个就不用写for了
执行数组的遍历
let obj = [0,1,2,3];
obj.forEach(function(item,index){
console.log(item)
})
- filter
遍历并过滤数组
返回会数组中满足条件的元素
let obj = [
{name:'a',score:67},
{name:'b',score:56},
{name:'c',score:34},
{name:'d',score:90},
{name:'e',score:67},
]
let res = obj.filter(function(item,index){
if(item.score>60){
return item
}
})
console.log(res);
去除数组中的空 undifind
var arr = ['1','2',undefined, '3','']
var newArr = arr.filter(function(item,index){
return item
})
console.log(newArr)
- reduce
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce() 方法接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce() 的数组。
一个简单实例,数组求和
let arr = [1,2,3,4,5,6];
let res = arr.reduce(function(tem,item,index){
return tem+item;
})
console.log(res);//21
tmp参数就是每次求和的值如第一次=1+2这时候tmp变成了3然后又执行3+3此时tmp变成了6依此类推直到求出总和。
示例二,将二数组转化为一维数组
let arr=[[1,2],[3,4],[5,6]];
let res = arr.reduce(function(tmp,item,index){
return tmp.concat(item);
})
console.log(res)
- every
遍历数组,查找数组中所以满足条件 返回true,只要一个不满足条件返回false
let ojb = [
{name:'a',score:60},
{name:'b',score:45},
{name:'c',score:67}
]
let res = ojb.every(function(item){
return item.score>60
})
console.log(res)//false
some
遍历数组,与every相反该方法只要数组中有一个满足条件返回ture
let ojb = [
{name:'a',score:60},
{name:'b',score:45},
{name:'c',score:67}
]
let res = ojb.every(function(item){
return item.score>60
})
console.log(res)//true
find
find与上面两个方法类似,但find返回的是满足条件的具体的值,只返回一个满足条件的元素
let ojb = [
{name:'a',score:60},
{name:'b',score:45},
{name:'c',score:67}
]
let res = ojb.find(function(item){
return item.score>=60
})
console.log(res)//{name:'a',score:60},
新增String方法
includes(str,start)
:返回布尔值,查找字符串中是否包含str返回布尔值,start可选表示从字符串哪个位置开始查找
let res = "hello".includes('l');
console.log(res)//true
startsWith(str,start)
:查找str是否在字符串开头
let res = "hello".startsWith('e');
console.log(res)//false
endsWith(str,start)
:查找str是否在str结尾
let res = "hello word".endsWith('word');
console.log(res)//true
repeat(int)
接收整数参数表示将字符串重复几次
let res = "helloword".repeat(2)
console.log(res)//hellowordhelloword