【问题标题】:How to fix code that returns undefined?如何修复返回未定义的代码?
【发布时间】:2016-09-19 15:48:13
【问题描述】:

我有这个代码:

const liked_users = promises[1];
    const disliked_users = promises[0];
    if (liked_users.length > 0 || disliked_users.length > 0){
      for(var i = 0; i < liked_users.length; i++){
        for(var j = 0; j < disliked_users.length; j++){
          for(var k = 0; k < _USERS.length; k++){
            if(_USERS[k].useruid == liked_users[i].likedUseruid || disliked_users[j].dislikedUseruid){
              _USERS.splice(i, 1);
              i--;
              break;
            }

基本上发生的事情是我访问了 firebase 数据库并从我的对象中提取了一些数据。

问题出现在有时 like_users 将是空白的地方,因此 liked_users[i].likedUseruid 将返回未定义。当它们被定义后,代码运行良好。

我怎样才能放入一些条件或代码块,允许以接受它可以未定义或在定义之前不运行代码的方式读取它?如果有帮助,我可以显示更多代码。

【问题讨论】:

  • likedUseruid属性未定义还是liked_users[i]对象本身?
  • 从您的代码中,liked_users 是一个数组。数组不能为空。它可以是空的,也可以是未定义的,但你已经在检查长度了

标签: javascript for-loop firebase firebase-realtime-database


【解决方案1】:

在 JavaScript 中,如果您只在 if condition 中输入变量名,那么它将检查其是否可用。

比如放这个块

if(_USERS[k].useruid == liked_users[i].likedUseruid || disliked_users[j].dislikedUseruid){
....
}

在这

if(_USERS[k].useruid && liked_users[i].likedUseruid &&  disliked_users[j].dislikedUseruid){
....
}

上述条件将检查_USERS[k].useruid是否可用并将继续...

您可以根据需要制作条件。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2019-06-27
    • 2019-03-12
    • 2020-02-11
    • 1970-01-01
    • 2017-02-06
    • 2019-10-28
    • 2022-07-21
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多