javascript - 在数组中循环的其他方法?javascript
问题描述
你们能解释一下在数组中循环的其他方法吗?
function blabla(number){
for ( let i = 0 ; i < number.length ; i++)
..........
}
console.log([1,2,3,4,5,6])// true
console.log([2,4,6,8]) // true
console.log([1,2,6,8,9,11, 25]) false
我们可以使用 forEach 循环吗?地图和过滤器怎么样?
解决方案
有很多不同的方法可以遍历数组。
让我们以这个数组为例:const array = ['foo', 'bar']
for..of
这将遍历数组中的值。
const array = ['foo', 'bar']
for (element of array) {
console.log(element)
}
for..in
这将遍历数组中的属性。在这种情况下,这将是数组索引。老实说,我不建议这样做来迭代数组。
const array = ['foo', 'bar']
for (element in array) {
console.log(element)
}
Array.forEach()
这将为数组中的每个元素运行一个回调。这允许您向它传递一个函数,该函数将每个元素作为参数。
const array = ['foo', 'bar']
const doSomething = e => console.log(e)
array.forEach(element => console.log(element))
//or
array.forEach(doSomething)
Array.map()
这将为数组中的每个元素运行一个回调,就像在 forEach 方法中一样,但是在该函数中,您可以return
修改元素的原始值,并且return
映射函数的值将是数组修改后的值。
这会将“test”添加到每个元素的末尾,并返回结果数组。
const array = ['foo', 'bar']
const mappedArray = array.map(element => element.concat('test'))
console.log(mappedArray)
Array.filter()
这将为数组中的每个元素运行一个函数,并且根据您返回的是真还是假,它将在返回的数组中包含或排除该元素
这将过滤掉所有包含字母“f”的元素。
const array = ['foo', 'bar']
const filteredArray = array.filter(element => !element.includes('f'))
console.log(filteredArray)
这些只是其中的一部分。我还建议研究Array.reduce()、Array.every()和Array.some()。
推荐阅读
- python - 计算空间距离返回操作数错误
- javascript - datetimepicker startDate endDate 控件
- javascript - ASP.NET MVC将div中span的innerHTML文本传递给控制器
- oauth-2.0 - OpenID Connect:可以从应用程序启动网页并自动登录用户吗?
- git - GIT:如何合并先前从合并提交中删除的更改
- css - 调整窗口大小时,多级推送菜单对浏览器来说太重了
- vb.net - 设置断点
- ubuntu-14.04 - Devstack 安装:运行 ./stack.sh 后 n-cpu 和 q-l3 失败
- uml - UML 2.5.1 和 UML 2.5 之间的区别
- typescript - Typescript:如何声明代表 Treeview 的类型?可能吗?