在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中使作为数组元素的对象为空[重复]