创建一个新的数组,新的数组中的元素是通过检查指定数组中符合条件的元素;
注意:
1. filter()不会对空数组进行检测;
2. filter()不会改变源是数组;
let arr1 = [
{ name: '橘子', price: '5', count: 20} ,
{ name: '香蕉', price: '10.5', count: 30} ,
{ name: '水蜜桃', price: '9', count: 15} ,
]
const newArr = arr1.filter( item => {
return item.count >= 10
})
console.log(newArr)
/* [
{name: "橘子", price: "5", count: 20},
{name: "水蜜桃", price: "15", count: 23}
]
//filter()会帮我们返回数组中所有符合的元素
它的参数是一个回调函数,所有成员都必须执行这个回调函数,直到找到第一个返回值为true的成员,然后返回该成员,否则返回undefined;
当数组中的元素找到符合条件时,返回true,且后面的值不会在执行该回调函数。
const arr = [34, 65, 87, 48, 99];
const arrNew = arr.find(num => {
return num >= 66;
});
console.log(arrNew); // 87
/*
find()函数可以接收三个返回值,第一个是当前的值,第二个是当前值的位置(数组的下标),第三个值是原数组
*/
注意:
map不会对空数组进行检测;
map不会修改原是数组;
const mapArr = [11,22,33,44,55,66];
const newMapArr = mapArr.map( item => {
return item / 11
})
console.log(newMapArr)[1,2,3,4,5,6]
所有 forEach()方法可以拿到我们的数组中每一个值 , 也就是我们遍历数组了 ~
const arr = [1, 2, 3, 4]
arr.forEach(
val =>{
console.log(val)
}
) // 1 2 3 4
区别
filter()和find()的区别:
相同点:
1. 都不会对空数组进行检测;
2. 都不会改变原数组;
不同点:
filter()会返回符合条件的所有值,并且创建一个新的数组,find()只找到符合条件的第一个值,返回true,否则返回undefined;
使用for...in遍历对象时,会遍历原型链上的可枚举属性,这可能会导致一些意想不到的问题。所以你一定收到过这样的建议,使用数组的forEach来代替for...in循环。本文给大家总结了5种在forEach中跳出循环的变通之法
在进行业务开发的过程中,使用了数组的高级函数map,同时使用了ES6语法async/await,发现在map循环下任务是异步执行的,并不符合预期。Array的循环方法map、forEach、filter、reduce、some、every等是并行迭代,可以理解为async/await的效果是无效的
在使用for循环的时候可以使用break 或者return语句来结束for循环(return直接结束函数),但是如果使用forEach循环如何跳出循环呢?首先尝试一使用return语句----木有效果
如果您需要重复大量的代码数百次,这会变得非常笨拙。而且,它也不是很有用。例如,如果希望它重复X次呢?这就是循环的用武之地。次数通常由变量决定,但也可以由实际数字决定。
循环:就是一遍又一遍执行相同或者相似的代码,循环的两个要素:循环体:重复执行的代码;循环条件:控制循环的次数
我在项目里面用到了的是全局守卫,beforeEach,方便管理 不过遇到了一个问题,就是在beforeEach()中设置好判断条件后出现了无限循环的问题 当时的代码如下:
对于本文中一些知识点任然有些模糊,懵懵懂懂,一直都在学习中,通过学习事件循环也看了一些文献,在其中看到了这一句话:除了你的代码,一切都是同步的,我觉得很有道理,对于理解事件循环很有帮助。
我们先来简单了解一下setTimeout延时器的运行机制。setTimeout会先将回调函数放到等待队列中,等待区域内其他主程序执行完毕后,按时间顺序先进先出执行回调函数。本质上是作用域的问题
for 常用于循环数组 ,for in 常用来循环对象,不建议循环数组,因为i是字符串 可能会有隐患问题,for in 循环会找到 prototype 上去,所以最好在循环体内加一个判断
我们经常会用到全局前置守卫,如判断用户有没有登陆过,如果登陆过就直接跳到目的页面,如果没有登陆过,就跳转到登陆页。先看官网对全局前置守卫的介绍
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!