遍历对象属性以检查数组中是否存在

Iterate Over Object Properties to Check if Any Exist in Array

我正在使用 JavaScript 构建一个计算器应用程序。当用户单击运算符(+、-、*、/)时,我想首先检查是否已经输入了任何其他运算符。我将所有按钮按下存储在一个数组中。如果操作符已经存在,则执行的第一个操作将是用按下的操作符替换操作符(如果不存在第二个数字来执行操作)或执行等于操作,然后将新操作符添加到操作符的末尾结果。例如,如果用户输入“1 + 1”,然后输入另一个“+”运算符,我希望它执行 1+1 操作,然后将下一个操作存储为“2 + [接下来输入的内容]”。

我有一个对象存储与每个运算符关联的函数。是否可以做类似的事情:

var ops = {
  "+": function(a,b) {return a + b},
  "-": function(a,b) {return a - b},
  // etc...
};

// And then in the code
if (log.indexOf(ops) >= 0) { // perform math, then add new op}

最后一行检查日志是否已经包含其中一个操作员。这种 shorthand 方法是否可行,或者我是否需要遍历对象属性?

这是我正在查看的 JSFiddle,尝试使用第一位评论者推荐的 object.keys(ops) 方法。

其中一种方法是:

log.some( x => Object.keys(ops).includes(x) )

请看Array.prototype.includes() and Array.prototype.some()