【问题标题】:If not behaving as expected如果行为不符合预期
【发布时间】:2016-10-29 19:48:23
【问题描述】:

在我的代码中出现错误并试图将其固定到特定部分并且无法理解这个 if 块的行为

 if (logged_in_user_object.useruid === cookie_value){
            //this.state.future_users.splice(logged_in_user_object, 1);
            console.log('hello');
          }

this.state.future_users 的长度为 4。 logged_in_user_object.useruid 每次都是独一无二的。 cookie_value 是独一无二的。 我之前曾安慰过登录,logged_in_user_object.useruidcookie_value 是一样的。 它没有拼接正确的,我不知道为什么不

【问题讨论】:

  • for 循环的意义何在?您发布的代码没有引用i,因此if 语句每次都会做同样的事情。
  • 它不应该记录一次。您有 4 个用户,因此您正在循环访问他们。 logs_in_user_object.useruid 和 cookie_value 不会改变,所以你在循环的哪个迭代上并不重要。它们仍然是相同的,所以条件总是通过,所以“你好”总是被记录下来。
  • 你能发布正在运行的数据集吗?要获取它,您可以控制台登录 JSON.stringify(this.state.future_users) 并将其粘贴到此处(或先正确格式化)。
  • 忽略我之前写的——听听@Pointy——他在为你指明正确的方向。
  • @Pointy 有点帮助,干杯。但现在我已经摆脱了 for 循环并正在拼接用户(将注释掉的代码放回)并且它没有拼接正确的用户。从这段代码中你能看到什么?

标签: javascript arrays reactjs splice


【解决方案1】:

在 for 循环中,你永远不会在任何地方使用 i;那么if语句中的条件每次都是一样的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-08
    • 2017-01-27
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多