javascript - 如何在不使用for循环的情况下引用数组的多个索引值?

标签 javascript jquery arrays for-loop

如何指定数组的多个索引值而不遍历所有索引值?

我有一个数组:var boxArray = $('.box').toArray();。我有 9 个 box 类元素,因此该数组由索引值 [0, 1, 2, 3, 4, 5, 6, 7, 8].

如果[0][4][8]boxArray索引值都是给定一个 clicked 类,我希望发生一些事情。我知道我可以使用 for 循环来迭代整个数组,并且我知道我可以仅引用一个索引值 (boxArray[0]),但是我该如何一次表示多个无序索引值?

$(boxArray[0, 4, 8]) 不起作用 - 仅识别最后一个索引值。 $(boxArray[0][4][8]) 不起作用

在 JavaScript 和 jQuery 中执行此操作的唯一方法是一次引用它们吗?理想情况下,我希望能够做这样的事情:

if ($(boxArray[0, 4, 8]).hasClass(‘clicked’)) {
  // do something;
}

而不是

if ($(boxArray[0]).hasClass('clicked') &&
    $(boxArray[4]).hasClass('clicked') &&
    $(boxArray[8]).hasClass('clicked')
) {
  // do something
}

最佳答案

您可以使用Array.prototype.every() :

The every() method tests whether all elements in the array pass the test implemented by the provided function.

代码片段:

var boxArray = $('.box').toArray();

var result = [1, 2, 4].every(function(element, index, array) {
    return boxArray[element].classList.contains('clicked');
});
console.log(result);

result = [0, 2, 4].every(function(element, index, array) {
    return boxArray[element].classList.contains('clicked');
});
console.log(result);

//

if ([0, 2, 4].every( (ele) => {return $(ele).has('.clicked');})) {
    console.log('test passed');
} else {
    console.log('test not passed');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>



<button class="box clicked">box</button>
<button class="box">box</button>
<button class="box clicked">box</button>
<button class="box">box</button>
<button class="box clicked">box</button>
<button class="box">box</button>
<button class="box">box</button>
<button class="box">box</button>

关于javascript - 如何在不使用for循环的情况下引用数组的多个索引值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487187/

相关文章:

javascript - 在 Meteor 中使用 Facebook 请求对话

javascript - 使用 jquery 重新排序 HTML 表中的列

javascript - 在附加 Jquery 期间根据字母对 div 数组进行排序

javascript - Ajax回调不响应

javascript - GetUserMedia - 面向模式

javascript - 有没有办法使用 CSS 或 javascript 从另一个 CSS 样式引用现有的 CSS 样式?

javascript - 单击提交 <button> 后,访问事件处理程序中存在于 <form> 外部的 <form> 内容

javascript - 从 Node.js 数组中单个对象的单个属性获取值?

javascript - jQuery 创建新数组并将旧数组加倍

python - 对于 N dim numpy 数组中的每个元素,将其添加到 1D numpy 数组并返回 N+1 dim 数组