javascript - 另一个 javascript 奇迹 6 == 6 是错误的
问题描述
我有这个基本代码
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
错误的
有人可以解释一下有什么问题吗?
解决方案
正如您在评论中验证的那样,两个字符串之一有尾随空格。我猜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
如果它也有尾随空格,你也应该修剪。
推荐阅读
- javascript - 使用扩展运算符重构遍历对象数组
- php - 检查数字的范围
- javascript - 通过单击 React 删除映射的元素
- asp.net-web-api - 关于存储令牌值的 OAuth 2.0 基于令牌的身份验证问题
- python - 我的views.py中没有识别出read_only_fields
- php - 当我尝试运行 cron 作业时,为什么会出现 mysql 扩展错误?
- c++ - 自定义类对象的 C++ 向量 - 已删除复制构造函数 - std::ifstream
- node.js - How do I use token to call Google API with node and express
- php - Can't Post to Database [Eloquent]
- nginx - How to set fastcgi_params_hash_max_size?