【问题标题】:Javascript forEach to modify numeric arrays with a functionJavascript forEach 用函数修改数值数组
【发布时间】:2021-11-26 17:38:16
【问题描述】:

我正在尝试对两个数组中的每组数字执行计算

    var close_px = [];
    close_px.push([9,9.5,10.2,10.3,10.6]);
    close_px.push([5,5.7,5.3,5.1,5,6]);
    close_px.forEach(element => element / element[0]-1);

我要输出的是每个数组计算为远离初始数字的百分比。

对于第一个数组,它将是:

    1: 9 /9 -1
    2: 9.5/9 - 1
    3: 10.2/9 - 1
    4: 10.3/9 - 1
    5: 10.6/9 - 1

【问题讨论】:

  • 通常你会解释发生了什么问题,或者至少问一个问题。
  • Array.prototype.forEach 用于副作用,但我没有看到任何变化。 Array.prototype.map 用于通过每个元素的函数返回值进行转换。
  • 你在这里期待什么?
  • 这一行没有任何结果:close_px.forEach(element => element / element[0]-1); - 它什么也不做。
  • 你应该这样做close_px = [...[9,9.5,10.2,10.3,10.6],...[5,5.7,5.3,5.1,5,6]],因为一开始你将数组推送到close_px ,你需要推送它们的值close_px.forEach(element => console.log(element / close_px[0] - 1));

标签: javascript functional-programming


【解决方案1】:

不确定我是否明白这一点,但这可能是您需要的:

const close_px = [];
close_px.push([9,9.5,10.2,10.3,10.6]);
close_px.push([5,5.7,5.3,5.1,5,6]);
const result = close_px.map(array => array.map(element => element / array[0] - 1));

console.log(JSON.stringify(result, null, 2));

【讨论】:

  • 没错,对数组中的每一个,然后映射元素:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
相关资源
最近更新 更多