另一个JavaScript奇迹6 == 6是假的

时间:2018-12-14 15:20:10

标签: javascript

我有这个基本代码

for(var i = 0; i < vm.tickets.length; i++) {   
            console.log(vm.tickets[i].docid);
            console.log(vm.csvData.DOCID);
            console.log(vm.tickets[i].docid == vm.csvData.DOCID);
            if(vm.tickets[i].docid == vm.csvData.DOCID) {

我已经放了======================...

日志

  

6

     

6

     

false

有人可以向我解释什么地方不对吗?

1 个答案:

答案 0 :(得分:0)

正如您在注释中所验证的那样,两个字符串之一具有结尾空格。我猜是vm.csvData.DOCID。您可以使用trim()删除它们,如下所示:

for(var i = 0; i < vm.tickets.length; i++) {   
    console.log(vm.tickets[i].docid);
    var csvDocId = vm.csvData.DOCID.trim(); // trim here
    console.log(csvDocId);
    console.log(vm.tickets[i].docid == csvDocId);
    if(vm.tickets[i].docid == csvDocId) {
        // whatever
    }
}

当然,如果vm.tickets[i].docid也有尾随空格,则也应该修剪它。