为了账号安全,请及时绑定邮箱和手机立即绑定

数组的声明

数组的声明

慕丝7291255 2021-10-07 11:01:00
我写了一个函数,用第二个函数检查一些数字并返回一个数组。在检查代码是否有效后,我注意到我必须在第一个函数中声明一个新数组 (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 中有什么方法可以做一些接近于此的事情吗?
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

使用高阶函数,是的。


function calc(a, b) {

  return [...Array(b - a + 1).keys()].map(x => a + x).filter(x => isPow(x));

}

解释:

  • Array(b - a + 1)将创建一个数组,其长度是a和之间的元素数量b,包括。

  • .keys()将产生数组的索引,即之间的数字0b - a,包括端值。

  • [...iterator]建立一个数组由迭代的所有元素(即,之间的数字0b - a,包括端点)。

  • .map(x => x + a)将修复的范围内,之间产生的数字ab,包括端值。

  • .filter(x => isPow(x))将产生一个新数组,其中只有满足 的元素isPow


查看完整回答
反对 回复 2021-10-07
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信