Javascript:如何遍历多位数字并找到每个数字的连续数字 ^ n?

新手上路,请多包涵

例如,假设我有数字 345。我如何在 javascript 中循环遍历数字中的每个数字并将其提高到连续的 n 次方:即 3^1 + 4^2 + 5^3?

原文由 Colin Sygiel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 567
2 个回答

这会将数字转换为字符串,将其拆分为数字,然后将每个数字提高到其索引加一的幂,然后通过加法减少以得出答案:

 ('' + 345).split('').map(function(v, i) {
  return Math.pow(parseInt(v), i+1)
}).reduce(function(a, v) {
  return a + v
}, 0)

结果 144

原文由 Dan D. 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 String.prototype.split()Array.prototype.reduce() 计算总和:

 let x = String(345).split('').reduce((a, v, i) => a + Math.pow(v, i + 1), 0);

console.log(x); // 144

使用 Array.prototype.map() 如果您不想计算总和,而是希望将连续的幂作为数组获取:

 let a = String(345).split('').map((v, i) => Math.pow(v, i + 1));

console.log(a); // [3, 16, 125]

原文由 Robby Cornelissen 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题