javascript - 如何在数组中查找具有某个属性值的对象?

标签 javascript arrays oop web extjs

我有一个对象数组:

var allButtons = [
    buttonA,
    buttonВ,
    buttonС,
    "->"
];

此对象可以具有“隐藏”属性,可以是真或假。

我需要(以最佳方式)发现是否有任何“按钮”隐藏了 === false(换句话说,是可见的)。

现在我使用这种原始方法:

someOfButtonsIsVisible = false;

Ext.each(allButtons, function (item){
    if(item.hidden === false) {
        someOfButtonsIsVisible = true;
    }
});

但在这种情况下,我必须遍历所有对象并检查它们的“隐藏”属性。

有没有更好的方法来知道数组中的任何对象是否隐藏了 === false?

最佳答案

使用array.prototype.some:

var someOfButtonsIsVisible = allButtons.some(button => button.hidden === false);

也可以用array.prototype.every来完成:

var someOfButtonsIsVisible = !allButtons.every(button => button.hidden === true);

但在您的情况下,array.prototype.some 更有意义

关于javascript - 如何在数组中查找具有某个属性值的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47458037/

相关文章:

javascript - 当未设置限制时,动态数组切片以限制长度

javascript - 重新排列数组数组的元素

javascript - IE 9 getAttribute 方法工作

.net - .Net 继承和成员可见性的奇怪问题

javascript - 当我点击其他div时让div出现

c++ - 从 C++ 函数返回 vector 或数组

c++ - 如何在 C++ 中的结构中设置一个 int 数组

javascript - 如何在javascript中比较数组1[对象数组]与数组2

java - java中的多重继承和方法覆盖问题

c++ - 有没有办法避免在特定的自定义类继承结构中使用虚拟方法?