一、数组相关的方法
(1):遍历forEach()方法
forEach(function(v,i,arr){})
1:forEach方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组
结果:最后返回的是原数组
需求:给ul下面的li 点击li添加背景色,其他兄弟去掉底色
<ul>
<li class="active">1</li>
<li>2</li>
<li>3</li>
</ul>
let lis = document.querySelectorAll("ul li");
lis.forEach(function (v, i, arr) {
lis[i].addEventListener("click", function () {
lis.forEach(function (v, i) {
lis[i].className = ""
})
this.className = "active";
})
})
(2):遍历map()方法
map(function(v,i,arr){})
1:map方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,对元数组中的元素进行修改,修改后经过回调函数处理,把返回值当做元素放入新数组中
结果:最后返回的是新数组
需求:让数组元素都 *2 输出型数组
let arr = ["1", "2", "3"];
let newArr = arr.map(function (v, i, arr) {
return v * 2;
})
console.log(newArr); //["2","4","6"]
forEach()和map()方法的区别
1:forEach方法遍历数组,返回的是原数组
2:map方法遍历数组,返回的是新数组,就是针对原数组中的元素进行操作处理后,回调函数的返回值作为元素放入新数组中。
(3):遍历filter()方法
filter(function(v,i,arr){})
1:filter方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,刷选出符合的条件的元素,放入新数组中
结果:最后返回的是新数组
需求:过滤掉工资低于3000的工资(不包含3000)
let arr = ["2000", "3000", "5000", "900"];
let newArr = arr.filter(function (v, i, arr) {
return v >= 3000;
})
console.log(newArr); //["3000","5000"]
(4):遍历some()方法
some(function(v,i,arr){})
1:some方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,根据筛选的条件,若是符合条件,则返回值为true
结果:最后返回的是布尔值
注意:假如你根据数组查询到商品的时候,由于some方法返回的布尔值,因此需要在外面定义一个空数组,用于接收数据(需要在return前面接收)
// 注意点:找到第一个元素的时候,直接终止循环
需求:查询数组中是否含有该元素
let arr = ["1", "3", "5"];
let flag = arr.some(function (v, i, arr) {
return v == 3;
})
console.log(flag); //true
filter()和some()方法的区别
1:filter方法遍历数组,根据条件筛选出元素,然后放入到新数组中,返回的是新数组
2:some方法遍历数组,根据条件遍历原数组中的元素,符合条件的则返回的true,没错返回的是布尔值。值得注意的是,some方法效率更高,因为它一找到符合条件的,直接结束循环。