代码之家  ›  专栏  ›  技术社区  ›  Greg Holden

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

  •  -2
  • Greg Holden  · 技术社区  · 7 年前

    我正在使用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}
    

    这是一个 JSFiddle 我在看什么,尝试这个物体。第一位评论员推荐的关键点(ops)方法。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Arash    7 年前

    其中一种方法是:

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

    Array.prototype.includes() Array.prototype.some()