我有一个正在使用 ListJs 的 Web 应用程序用于排序和过滤。在我的一段代码中,我有这个函数:
var filterOptions = { valueNames: ['department'] };
var employeeFilterList = new List('employees', filterOptions);
$('#filter-engineering').click(function() {
employeeFilterList.filter(function(item) {
console.log(item.values());
if (item.values().department === "Engineering") {
return true;
} else {
return false;
}
});
return false;
});
本质上,这在 Web 应用程序上所做的是使用 list.js 对员工目录的排序功能,仅返回工程部门的员工。现在这是真正的问题,无论如何,除了这个问题之外,这段代码应该可以工作。
函数中的console.log
返回各项的值,如下所示:
如您所见,该对象的部门值为'Engineering'
,其中有一些奇怪的编码。通过运行我的代码并刷新页面,我发现由于间距问题, item.values().department === "Engineering"
始终为 false。什么可能导致这样的事情以及我该如何解决它?有什么办法可以去掉多余的空格吗?
最佳答案
使用 trim()
删除不必要的空格,而不是 if (item.values().department === "Engineering") {
使用 if (item.values().department.trim() === "工程") {
关于javascript - 字符串与自身比较时无法返回 true。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42192040/