ES5新增的数组方法forEach(function())
- forEach() 用于调用数组的每个元素,并将元素传递给回调函数
注意:forEach()对于空数组是不会执行回调函数的
IE8不兼容只有存数组才有此方法,类数组对象不能使用
语法:array.forEach(function(val,key))
//function参数数量可选
<script type="text/javascript">
//声明数组
var list = ['张姥姥','刘奶奶','牛奶奶','王大爷','马奶奶','赵姥姥'];
list.forEach(function(val,key){
console.log(val,key);
//val:数组的值
//key:数组的索引
})
//也可以把function写在外面
list.forEach(eachArr);
function eachArr(val, key){
console.log(val, key);
}
</script>
ES5新增的数组方法map(function())
<script type="text/javascript">
var list = [10,20,30,40,50];
console.log(list);
//map 用于对数组的每个元素进行修改,修改后的组成新的数组,以返回值形式返回
var res = list.map(function(val, key){
//val和key的参数和forEach的一样都是代表元素和索引值
return val + 4;
});
console.log(res);
</script>
ES5新增的数组方法filter(function())
<script type="text/javascript">
//数组
var arrList = [
{name:"曹操", sorce: 89},
{name:"曹丕", sorce: 69},
{name:"曹植", sorce: 39},
{name:"曹雪芹", sorce: 59},
{name:"曹冲", sorce: 99},
{name:"曹爽", sorce: 49}
];
var newArr = arrList.filter(function(val, key){
if (val.sorce >= 60) {
return true;
} else {
return false;
}
});
console.log(newArr);
</script>
ES5新增的数组方法
- every(function())检测数值元素是否有元素符合指定条件,数组中所有成员都满足条件 才返回true
- some(function())检测数值元素是否有元素符合指定条件,数组中一个成员满足条件 就返回true
- indexOf()返回数组指定元素的第一次索引
- lastIndexOf()返回数组指定元素最后出现的索引
<script>
//every some
var arrList = [12, 34, 6, 56, 67, 34, 787, 89];
console.log(arrList);
//every 要求每个元素都满足 条件 返回true
var res = arrList.every(function(val, key) {
//console.log(val, key);
return val > 10;
});
console.log(res);
//some 只要一个满足 就返回true
var res1 = arrList.some(function(val) {
return val > 10;
});
console.log(res1);
//indexOf
console.log(arrList.indexOf(34));
console.log(arrList.lastIndexOf(34));
</script>
方法
- call() 改变this执行,调用函数或方法,call第二个往后的参数指定被调用的函数或方法的参数
- apply() 改变this指向,调用函数或方法,第二个参数是数组,数组成员就是参数
- bind() 改变this执行,返回新的函数(已经改变了this指向)
<script>
var obj01 = {
msg:"曹操",
getInfo:function(){
console.log(this.msg);
}
}
var obj02 = {
msg:"诸葛亮"
}
obj01.getInfo();
//改变this指向
obj01.getInfo.call(obj02);
obj01.getInfo.apply(obj02);
//bind需要返回一个函数,调用才能执行
var fn = obj01.getInfo.bind(obj02);
fn();
</script>
网友评论