gpt4 book ai didi

javascript - 数组的声明

转载 作者:行者123 更新时间:2023-12-01 00:39:37 24 4
gpt4 key购买 nike

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

检查代码是否有效后,我注意到我必须在第一个函数中声明一个新数组(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 有什么方法可以做类似的事情吗?

最佳答案

使用高阶函数,是的。

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

说明:

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

  • .keys() 将产生该数组的索引,即 0b - a 之间的数字(含) .

  • [...iterator] 将创建一个由迭代器的所有元素组成的数组(即 0b 之间的数字 - a,包含在内)。

  • .map(x => x + a) 将修复范围,生成 ab 之间的数字,包容性。

  • .filter(x => isPow(x)) 将生成一个新数组,其中仅包含满足 isPow 的元素。

    <

关于javascript - 数组的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com