1.forEach(偏操作元素型)
对数组中的每一个元素执行一次函数。
var arr2 = [1,3,6,7]; var theSum = 0; arr2.forEach(function(value, index, arr) { //函数可以传入三个参数,value必写 //其中value为元素的值,当其为储存对象的数组的时候就为对象 //index为当前所执行的元素对应数组的下标 //arr数组本身 theSum += value; }) console.log(theSum); //17
注意: 除了抛出异常以外,没有办法中止或跳出forEach()
循环。如果你需要中止或跳出循环,forEach()
方法不是应当使用的工具。
2.filter(元素筛选)
用来测试数组的每个元素的函数。返回 true
表示该元素通过测试,保留该元素,false
则不保留。该方法的传入参数与foreach一致 // filter 筛选数组
<script>
// filter 筛选数组
var arr = [12, 66, 4, 88, 3, 7];
var newArr = arr.filter(function(value, index) {
return value >= 12;
//符合条件要求的就返回
//等式左边需要有一个数组来接收参数
});
console.log(newArr); // 12 66 88
</script>
利用该方法数组去重:
// filter 筛选数组 var arr = [12, 2, 2, 3, 3, 7]; var newArr = arr.filter(function(value, index) { return index == arr.indexOf(value); }); console.log(newArr);
3.some(判断元素是否存在)
// some 查找数组中是否有满足条件的元素 // var arr = [10, 30, 4]; // var flag = arr.some(function(value) { // // return value >= 20; // return value < 3; // }); // console.log(flag); var arr1 = ['red', 'pink', 'blue']; var flag1 = arr1.some(function(value) { return value == 'pink'; }); console.log(flag1); // 1. filter 也是查找满足条件的元素 返回的是一个数组 而且是把所有满足条件的元素返回回来 // 2. some 也是查找满足条件的元素是否存在 返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环
4.Object.keys (遍历对象属性)
用于获取对象身上所有可以枚举的属性名
// 用于获取对象自身所有的属性 var obj = { id: 1, pname: '手机', price: 2000, num: 666 }; var arr = Object.keys(obj); console.log(arr); arr.forEach(function(value) { console.log(value); })
返回一个所有元素为字符串的数组,其元素来自于从给定的object
上面可直接枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。