从数组中获取每第三个值

Ste*_*eve 0 javascript arrays jquery

我有一个数组arr = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'],我想把每个第三个值变成一个新的arr2 = ['three', 'six', 'nine'].

我试过for循环,但我不能让它正常工作.使用jQuery或只是javascript的最佳方法是什么?

Jos*_*ack 9

for如果你愿意,你可以使用循环!

考虑以下:

var arr1 = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
var arr2 = [];

for (var i = 2; i < arr1.length; i += 3) {
    arr2.push(arr1[i]);
}

arr2; // ["three", "six", "nine"]
Run Code Online (Sandbox Code Playgroud)

  • 仇恨不正确,经过深思熟虑的答案,是的,我们是! (7认同)
  • @ bto.rdz如果你在答案中花费了大量时间来抱怨假点,那么我们甚至不会讨论这个问题. (5认同)
  • @ bto.rdz那是因为你的回答_不会产生OP_请求的结果. (4认同)
  • @ bto.rdz:答案不一样.即使你的答案得到了正确答案,这仍然会更有效率. (2认同)

Str*_*ner 7

你可以使用.grep函数

var arr2 = $.grep(arr, function( n, i ) {
    return i % 3 == 2;
});
Run Code Online (Sandbox Code Playgroud)

在这里小提琴

  • @Steve:另请注意,使用`.grep`(或`filter`)将触及数组中的每个元素.既然你知道你只需要每一个第三个元素,那么增加'3'的常规`for`循环会更有效(参见Josh的答案).并不是说它无论如何只有9个元素可能会有很大的不同. (5认同)