在Javascript中使数组中的所有数字成为绝对值[关闭]

Posted

技术标签:

【中文标题】在Javascript中使数组中的所有数字成为绝对值[关闭]【英文标题】:Make all numbers in array Absolute value in Javascript [closed] 【发布时间】:2020-10-07 08:18:34 【问题描述】:

我试图使下面数组中的所有值都是绝对值,在尝试了几种方法后,出现的结果是数组中的第一个元素 5。以下是给出的代码:

describe('absoluteValueArray', () => 
    it('Gets multiple absolute values', () => 
      const result = absoluteValueArray([-5,-50,-25,-568])
      expect(result).toEqual([5,50,25,568])
    )
  )

我尝试的功能如下:

const absoluteValueArray = (array) => 

    var index, len;
    var array = ["-5", "-50", "-25" , "-568"];
    for (index = 0, len = array.length; index < len; ++index) 
      let res = Math.abs(array[index]);
      return res;
    


【问题讨论】:

请至少尝试一次。 “在尝试了几种方法后,出现的结果是 somethimes NaN” - 它们都不在你的“问题”中 -> minimal reproducible example minimal reproducible example 的一部分是 输出 - 在这种情况下,可能测试失败了,因为输出只是 5,这应该可以让您了解什么问题是,但请将其包含在问题中。 完成,我编辑了我的帖子。 在添加了几次尝试之一之后:您尝试检查什么为什么这不起作用?作为提示:你为什么在for 循环中放置return 语句? 【参考方案1】:

你的方法在这一行和下一行都行不通

let res = Math.abs(array[index]);
return res;

因为你需要将绝对值赋给数组或者同一索引处的新数组,比如

resultArray[i] = Math.abs(array[index]);

并在完成循环后返回数组。

循环内部的原始返回以第一个元素退出循环。


相反,您可以将Math.abs 作为Array#map 的回调。

const absoluteValueArray = (array) => 
    return array.map(Math.abs);


console.log(absoluteValueArray([-5, -50, -25, -568]));

【讨论】:

以上是关于在Javascript中使数组中的所有数字成为绝对值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ActiveRecord 准备语句中使 ruby​​ 数组成为 x、y、z

如何在javascript中使作为数组元素的对象为空[重复]

数组中数字的绝对差之和

数组4:数组中使奇数都在偶数前面的三道题

LeetCode 448.找到所有数组中消失的数字 - JavaScript

在php类方法中使最后一个数组参数可选(C)