有没有可能只映射数组到特定的索引?
例如,假设我有以下内容:
var nums = [1, 2, 3, 4, 5];
我想将数组中的数字加起来,但仅限于前三个索引。是否可以传递参数给Array.map()
以仅处理到给定的索引?还是只能使用for
循环来实现?
有没有可能只映射数组到特定的索引?
例如,假设我有以下内容:
var nums = [1, 2, 3, 4, 5];
我想将数组中的数字加起来,但仅限于前三个索引。是否可以传递参数给Array.map()
以仅处理到给定的索引?还是只能使用for
循环来实现?
.slice()
会创建一个新的数组,并将元素复制到请求范围内。如果实际解决的问题涉及大型原始数组,并且实际范围也相当大,则使用简单的for
循环比这种方式更昂贵。 - Pointyslice()
方法来获取数组中特定索引前的元素。nums.slice(0,3).map();
你可以使用 slice()
函数,它会返回一个新的数组对象,该对象是从原始数组中从开始到结束(不包括结束)所选部分的浅拷贝。原始数组不会被修改。
nums.slice(0,3).map(//your code);
更多信息请参考
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
nums[0]+nums[1]+nums[2]
将是我的选择。对于更复杂的函数和更大的数组(以及子数组),您可能需要自己编写一个函数来使用简单的for
循环进行迭代,以避免复制和不必要的迭代。 - Pointy