javascript - 数组元素的增量幂
问题描述
我试图以增量方式获取每个元素的力量,即对于x = [6,9,5]
我希望我的输出为的输入y = [6², 9³, 5⁴]
,力量从给定的变量开始p
。
我的代码:
var sqr = [];
var n = [6,9,5];
var p = 2;
for (let i = 0; i < n.length; i++) {
for (let j = p; j < n.length + 1; j++) {
sqr.push(Math.pow(n[i],j));
console.log(sqr);
i++;
}
return sqr;
它可以工作,但从不执行最后一个元素,具体取决于数组的大小和/或p
(我知道这是因为它转到一个不存在的索引)。但我想知道是否有更好的方法。谢谢
解决方案
一种选择是使用.map
(将一个数组转换为另一个数组)和取幂运算符**
。获取被迭代元素的索引(回调的第二个参数)来计算指数应该有多大:
var n = [6,9,5];
const powers = n.map((num, i) => num ** (i + 2));
console.log(powers);
推荐阅读
- javascript - 需要读取本地文件的 npm 包?
- firebase - 域和子域之间的 Firebase 身份验证共享
- javascript - Material-UI组件中componentsProps的用途是什么?
- c# - 如何在不使用 for 循环的情况下从 appsettings 文件中读取对象数组中特定键的值
- var - 如何将var传递给另一个类C#
- r - 如何在 R 中使用循环导入 .cvs 文件?
- asp.net - asp.net 和 signalR ,JsonException:检测到可能的对象循环
- linux - C Shell:“如果:表达式语法”
- python - 为什么 dask 的“to_sql”比 pandas 花费更多时间?
- reactjs - Express 服务器无法启动