使用 for 循环时如何删除未定义

Posted

技术标签:

【中文标题】使用 for 循环时如何删除未定义【英文标题】:How can i remove udefind while im uisng forloop 【发布时间】:2019-03-18 07:49:01 【问题描述】:

当我绑定值时,我得到的值是 undefinedAnil Singh1,Sunil Singh2,Sushil3,Aradhya4,Reena5,我怎样才能删除 undefind

$scope.GetData = function () 
        for (var i = 0; i <$scope.employee.length; i++) 
            var abc = $scope.employee[i];
            angular.forEach(abc, function (value, key)                
                if (key == "name") 
                    
                        if ($scope.emailNames != "undefined") 

                     $scope.emailNames = $scope.emailNames + value + ",";
                            console.log($scope.emailNames);
                        
                    
            )

【问题讨论】:

为什么减号是他们的错 【参考方案1】:

我认为您的问题是您正在寻找字符串比较,但 undefined in javascript 不是字符串。

这意味着你的支票:

if ($scope.emailNames != "undefined")

通过,然后将 $scope.emailNames 与一个新字符串连接起来,并将 undefined 值转换为历史字符串版本:"undefined" em> 在控制台输出中找到。

为了演示,试试这个代码:

var x;
var y = x + "some new string";
console.log(y);

你得到了:

未定义一些新字符串

要解决问题,您需要修复 if 语句:

if ($scope.emailNames !== undefined)

请注意我使用 !== 来检查 $scope.emailNames 是否也是相同的类型。

这意味着如果你有一个 null 它将再次失败,你会在你的日志中找到 nullsome new string

在这种情况下,只需使用只有 1 个相等的 !=,将 null 值视为 undefined

【讨论】:

【参考方案2】:

我认为您需要检查未定义而不是“未定义”

【讨论】:

【参考方案3】:

使用 .substring() 方法,如下所示

 $scope.GetData = function () 
        for (var i = 0; i <$scope.employee.length; i++) 
            var abc = $scope.employee[i];
            angular.forEach(abc, function (value, key)                
                if (key == "name") 
                    
                        if ($scope.emailNames != "undefined") 
                            $scope.emailNames = $scope.emailNames + value + ",";
                            var res = $scope.emailNames.substring(9);
                            console.log(res);
                        


  
        )

【讨论】:

以上是关于使用 for 循环时如何删除未定义的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VueJS 的 v-for 循环中定义起点

如何在不使用 for 循环的情况下从列表中删除元素?

如何正确遍历删除List中的元素(普通for循环增强for循环迭代器iteratorremoveIf+方法引用)

如何删除在 JavaScript 循环中连接字符串时添加的额外字符? [复制]

如何在 Python 的 for 循环中删除列表元素? [复制]

如何删除在 for 循环中创建的注释