首页 > 解决方案 > 数组元素的增量幂

问题描述

我试图以增量方式获取每个元素的力量,即对于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(我知道这是因为它转到一个不存在的索引)。但我想知道是否有更好的方法。谢谢

标签: javascriptarraysloops

解决方案


一种选择是使用.map(将一个数组转换为另一个数组)和取幂运算符**。获取被迭代元素的索引(回调的第二个参数)来计算指数应该有多大:

var n = [6,9,5];
const powers = n.map((num, i) => num ** (i + 2));
console.log(powers);


推荐阅读