首页 > 解决方案 > 在数组中循环的其他方法?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 循环吗?地图和过滤器怎么样?

标签: javascriptarraysloopsfor-loopecmascript-6

解决方案


有很多不同的方法可以遍历数组。

让我们以这个数组为例: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()


推荐阅读