ES5新增数组方法(常用)
- 新增了数组的快速遍历值,索引,数组:
forEach
, - 快速查找数组中符合条件的所有值,索引,数组:
filter
- 查询数组中有没有某个值,索引,数组:
some
- 清除字符串两端的空白:
trim()
- 获取对象身上的所有属性名:
Object.keys(目标对象);
filter
与 some
的异同点:
相同点:
- 都是查询数组中符合条件的值
不同点:
filter
查询数组中满足条件的所有值,会把数组中所有满足条件的值都返回出来。返回值为一个新的数组
,可以声明一个变量保存起来这个数组,方便进行其他的操作;some
返回值是布尔类型
,作用主要是查找某个元素是否存在,不存在返回false
,存在那就直接返回了true
,并且不会再往下遍历【重点】。
用几个案例聊一下分别是如何使用的:
forEach:
var arr = [1, 2, 23, 4, 56, 3];
var sum = 0;
// 遍历数组 forEach
arr.forEach(function(value, index, array) {
sum += value;
})
console.log(sum);
输出结果:89
filter:
// 筛选数组 filter
var arr = [1, 2, 23, 4, 56, 3];
var newArr = arr.filter(function(value, index, array) { // 返回值是一个新数组,所以需要定义变量保存一下筛选后的数组
return value >= 22; // 不要忘了加return
})
console.log(newArr);
输出结果:
some:
// 查询数组中是否有某个值 some
var flag = arr.some(function(value, index, array) {
return value >= 22;
})
console.log(flag);
输出结果: true
trim():
var str = ' wlw cyg ';
console.log(str + '长度为:' + str.length);
var newstr = str.trim();
console.log(newstr + '长度为:' + newstr.length);
输出结果对比:
Object.keys():
var obj = {
id: 1,
name: 'cyg',
age: 20
}
// 获取对象身上的所有属性名,并且返回一个数组
var arr = Object.keys(obj);
console.log(arr);
输出结果:
tips:
trim() 方法仅仅会删除字符串两边的值,不会删除字符串中间的值;
tips:
深刻理解filter与some的区别;
不断复盘,不断优秀,让自己成为镜子里想成为的那个人.关注三连,持续更新~~~