Javascript 如何获取数组的每三个元素

Javascript 如何获取数组的每三个元素,javascript,arrays,Javascript,Arrays,我有一个数组,只想每三个元素返回一个新数组(从0开始) 例如: let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let newArr = [1, 4, 7]; 这就是我目前的做法: let newArr = []; for(let x = 0; x < arr.length; x += 3) { newArr.push(arr[x]); } return newArr; 让newArr=[]; 对于(设x=0;x

我有一个数组,只想每三个元素返回一个新数组(从0开始)

例如:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let newArr = [1, 4, 7];
这就是我目前的做法:

let newArr = [];
for(let x = 0; x < arr.length; x += 3) {
   newArr.push(arr[x]);
}
return newArr;
让newArr=[];
对于(设x=0;x

有没有办法用arr.map实现这一点?有更简单的方法吗?

你也可以用


但是请记住,在某些上下文中,使用basic for循环比其他方法更有效。

.map()
不是一个好的选择,因为它旨在返回1对1的映射。您可以使用
.reduce()
。@Pointy我为什么要使用reduce作为本质上的过滤器?@torazaburo当然,这是真的。我通常认为“过滤器”与列表中值的内在性质有关,但我想这正是我的问题:)表达式
(u,I)
)中的
是什么意思?@steppup这只是一个未使用的参数,这就是为什么我们在这里使用下划线。这没有什么特别的意义。如果数组很大,使用
过滤器
不是最好的主意,比如说10000个左右,因为您不想循环超过10000个元素,只需像问题中那样直接使用for循环访问它们。
let newArr = arr.filter((_,i) => i % 3 == 0);