javascript - 基于对象映射检查数组中的任何值是否为 false 的最有效方法

标签 javascript optimization

我正在处理一个对象,该对象的键具有一个 bool 值。我正在尝试找出最有效的方法来检查从数组接收到的任何值在对象中是否等于 false 及其关联的键。

例如我有一个像这样的对象:

cars = {
  bmw: true,
  lexus: true,
  audi: false,
  mercedes: false
}

然后我会收到一个数组,例如:

allApproved(['bmw', 'audi'])  // should return false
allApproved(['bmw', 'lexus']) // should return true

如果映射中键 false 的任何值,我希望我的函数返回 false。不管有多少,如果有的话我想返回 false。如果它们都是 true,我将返回 true。

最佳答案

使用Array#every

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

var cars = {
  bmw: true,
  lexus: true,
  audi: false,
  mercedes: false
};

function allApproved(arr) {
  return arr.every(function(el) {
    return cars[el];
  });
}

console.log(allApproved(['bmw', 'audi']));
console.log(allApproved(['bmw', 'lexus']));

关于javascript - 基于对象映射检查数组中的任何值是否为 false 的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38647290/

相关文章:

Mysql 更新之前首先检查是否有必要或只是更新?

javascript - 如何向我的 Electron 应用程序添加自定义 chrome 扩展?

javascript - jquery.mobile,与其他页面隔离等

python - 在python中计算表面拟合后3D偏差的均方根

python - 将上三角矩阵转换为对称矩阵的快速方法

r - 为什么R中的optimx无法为这种简单的非参数似然最大化提供正确的解决方案?

不需要新的 : allocated contiguosly 的对象的 Java 数组

javascript - 在 Google Chrome 扩展中添加 "options"菜单

javascript - 查看传单 geojson 时出现扭曲

javascript - Knockout.js 仅在值更改时启用保存