【问题标题】:other method to loop in array ? javascript在数组中循环的其他方法? javascript
【发布时间】:2018-09-19 16:25:57
【问题描述】:

你们能解释一下在数组中循环的其他方法吗?

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 来循环吗?地图和过滤器呢?

【问题讨论】:

  • 为什么需要循环以及如何决定 truefalse 是否使用循环?
  • 数组方法有很多迭代,每次迭代做不同的事情。您可以在MSN 等网站上查找这些内容。如果您需要具体建议,请说明您正在尝试做什么。
  • 没有收到您的问题
  • 不,你不应该使用forEachfor … of 是迭代数组的最佳方式。而mapfilter 不是关于循环,它们是关于创建一个新数组。
  • @Bergi 怎么来的?

标签: javascript arrays loops for-loop ecmascript-6


【解决方案1】:

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

我们以这个数组为例: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 值map 函数的值将是具有修改值的数组。

这会将“test”添加到每个元素的末尾,并返回结果数组。

const array = ['foo', 'bar']

const mappedArray = array.map(element => element.concat('test'))
console.log(mappedArray)

Array.filter()

这将为数组中的每个元素运行一个函数,并且根据您返回的是 truthy 还是 falsy,它将包含或排除该元素返回数组

这将过滤掉所有包含字母“f”的元素。

const array = ['foo', 'bar']

const filteredArray = array.filter(element => !element.includes('f'))
console.log(filteredArray)

这些只是其中的一部分。我还建议您查看Array.reduce()Array.every()Array.some()

【讨论】:

    【解决方案2】:

    这将从0开始计数

    function blabla(number){
        $.each(new Array(number),
           function(n){alert(n);}
        );
    }
    
    blabla(3);
    

    【讨论】:

    • 你想解释什么
    • 这个blabla(number)函数的目的是什么?为什么要在这里介绍 jquery?
    • 我没有解释任何事情。 OP肯定有他自己的理由。所以我只是向他展示了一条不同的道路。就是这样。
    • 您正在创建空数组并执行函数。那有什么用
    • 如果我没记错的话,$.each() 只能在object 上操作,这就是原因。并且因为 OP 想要一种不同的方法,尽管我永远不会这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2011-10-20
    相关资源
    最近更新 更多