2017-07-10 54 views
1

是否可以只将数组映射到某个索引?在索引处结束数组映射?

例如,说我有以下几点:

var nums = [1, 2, 3, 4, 5]; 

我想在阵列中总结的数字,但最多只能到3号索引。是否有可能将参数传递给Array.map()只能达到给定的索引?或者这是唯一可能使用for循环?

+2

? reduce()会更好 – epascarello

+0

对于像你的例子那样简单的事情,'nums [0] + nums [1] + nums [2]'是我的选择。对于更复杂的函数和更大的数组(和子数组),您可能想要使用一个简单的for循环来创建自己的函数来避免复制和不必要的迭代。 – Pointy

+0

对不起,我的意思是说减少:( – MarksCode

回答

8

只需使用slice

The slice() method returns a shallow copy of a portion of an array into a new array object selected from begin to end (end not included). The original array will not be modified.

nums.slice(0,3).map(...); 
+0

这是一个很好的处理方式,但应该注意那么'.slice()'会创建一个新的数组,然后在要求的范围内将元素复制到它中。如果实际问题涉及到一个大的原始数组,并且实际范围也相当大,则这比使用简单'for'循环。 – Pointy

0

可以使用slice()获得阵列,直到一个特定的指数

nums.slice(0,3).map(); 
2

根据定义,地图()被调用数组中的每个元素。详情请参阅文档here。所以,是的,您需要使用不同的解决方案,例如for循环。