Javascript 迭代对象属性以检查数组中是否存在任何属性

Javascript 迭代对象属性以检查数组中是否存在任何属性,javascript,arrays,object,indexof,Javascript,Arrays,Object,Indexof,我正在使用JavaScript构建一个计算器应用程序。当用户单击运算符(+、-、*、/)时,我想首先检查是否已输入任何其他运算符。我将所有按键存储在一个数组中。如果已经存在运算符,则执行的第一个操作将是用按下的运算符替换该运算符(如果不存在第二个数字来执行操作),或者执行等于操作,然后将新运算符添加到结果的末尾。例如,如果用户输入“1+1”,然后输入另一个“+”操作符,我希望它执行1+1操作,然后将下一个操作存储为“2+[下一步输入的内容]” 我有一个对象,它存储与每个操作符关联的函数。是否可以

我正在使用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}
最后一行是检查日志是否已经包含一个运算符。类似这种速记方法是可能的,还是需要迭代对象属性


下面是我所看到的一个例子,尝试第一位评论者推荐的object.keys(ops)方法。

许多方法之一是:

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

请查看和

对象。您要查找的键(OP):
如果(日志中的ops){
?您需要显示更多的代码以查看卡住的地方。ops.hasOwnProperty(运算符)此操作有效,但仅当我迭代每个对象属性时。我正在寻找一种快捷方式。例如,将对象的所有键传递给includes()一次数组并让它一次检查所有属性。你是说像
Object.keys(ops).includes(searchElement)
这样的东西吗?检查我的意思。谢谢
log.some(x=>Object.keys(ops).includes(x))
。谢谢,阿拉什!创建这个作为答案,我会把它标记为正确的。