有没有办法一次选择多个数组元素?
我有这段代码:
var my_array = ["a", "b", "c", "d", "e", "f"];
我想同时从数组中选择第 1、3、5、7、9 个元素,就像这样
my_array[0,2,4,6,8];
原文由 Matija 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有办法一次选择多个数组元素?
我有这段代码:
var my_array = ["a", "b", "c", "d", "e", "f"];
我想同时从数组中选择第 1、3、5、7、9 个元素,就像这样
my_array[0,2,4,6,8];
原文由 Matija 发布,翻译遵循 CC BY-SA 4.0 许可协议
现在最简单的方法是使用 map 函数:
[0,2,4,6,8].map(x=>my_array[x]);
诀窍是在所需索引的数组上调用 map 函数。数组映射函数将返回一个与调用它的数组长度相同的数组。 map 函数内的回调函数 ( x=>my_array[x]
) 然后为每个所需的索引返回 my_array
的值。
原文由 tommyleejones 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
如果必须使用 JavaScript,最简单的方法是设置一个简单的函数,将数组和索引传递给该函数:
然后调用:
但是请记住,您的原始选择器包括所有子节点(必然包括
textNode
s 和 HTML 注释节点(可能还有其他节点);而您似乎只想要HTMLElement
s; 为此,我强烈建议使用稍微不同的选择方式:或者:
此外,虽然没有看到您的 HTML 很难特别精确,但您 似乎 只是试图选择
childNode
的奇数索引,这有助于使用 CSS 来实现你的目标。在您的具体情况下,这将是: