数组的声明

我写了一个函数,用第二个函数检查一些数字并返回一个数组。


在检查代码是否有效后,我注意到我必须在第一个函数中声明一个新数组 (arr) 才能解决它。


function calc(a, b) {

  arr = []

  for(a;a<=b;a++) isPow(a) ? arr.push(a) : a

  return arr

}

我想尝试在唯一需要数组的地方创建一个数组,即 push(a) 所在的位置。我想过这样的事情:


function calc(a, b) {

  return for(a;a<=b;a++) isPow(a) ? [].push(a) : a

}

但显然这行不通。JavaScript 中有什么方法可以做一些接近于此的事情吗?


慕丝7291255
浏览 118回答 1
1回答

慕码人8056858

使用高阶函数,是的。function calc(a, b) {&nbsp; return [...Array(b - a + 1).keys()].map(x => a + x).filter(x => isPow(x));}解释:Array(b - a + 1)将创建一个数组,其长度是a和之间的元素数量b,包括。.keys()将产生数组的索引,即之间的数字0和b - a,包括端值。[...iterator]建立一个数组由迭代的所有元素(即,之间的数字0和b - a,包括端点)。.map(x => x + a)将修复的范围内,之间产生的数字a和b,包括端值。.filter(x => isPow(x))将产生一个新数组,其中只有满足 的元素isPow。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript