gpt4 book ai didi

javascript - 在 foreach 外部设置标志来确定操作的更好质量方法

转载 作者:行者123 更新时间:2023-11-28 14:23:43 26 4
gpt4 key购买 nike

我经常发现自己需要遍历一组元素来确定一个或多个元素在某个时间点是否具有特定属性。为了确定存在问题的属性时发生的行为,我使用 bool 值清除标志并迭代集合,设置标志,然后对标志的值进行操作。

这是一个例子:

function disableButtonIfAnyFailuresVisible() {
var failureRows = $(this).find(".validation-row-failure");

anyVisible = false;
failureRows.each(function() {
if ($(this).is(":visible")) {
anyVisible = true;
}
});

if (anyVisible) {
$("#continue-button").prop("disabled", true);
}
}

在此方法中,我想找到页面上的所有 .validation-row-failure 元素,并检查它们是否可见。如果页面上有任何可见内容,我想通过禁用继续按钮来阻止用户继续操作。

为此,我首先将 anyVisible bool 值设置为 false,然后迭代集合中的每个元素(如果设置了任何可见的 anyVisible)为 true,然后 if(anyVisible) 条件将触发。

正如我之前提到的,我半频繁地使用这种方法,但是我忍不住认为这是处理这个特定场景的糟糕方法。我想知道是否还有其他质量更好的方法可以解决此问题?

最佳答案

Array.some() 可能就是您正在寻找的:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

按照这些思路应该可以工作:

let failureRows = $(this).find(".validation-row-failure").toArray();
let anyVisible = failureRows.some(row => row.is(":visible"));
$("#continue-button").prop("disabled", anyVisible);

关于javascript - 在 foreach 外部设置标志来确定操作的更好质量方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54420368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com