2017-02-12 34 views
2

我有一個Web應用程序使用ListJs進行排序和篩選。在一塊我的代碼我有這樣的功能:與自身比較時,字符串無法返回true。

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返回每個項目的值,顯示如下:

enter image description here

正如你所看到的,這個對象的部門價值' Engineering '在有一些奇怪的編碼。通過運行我的代碼並刷新頁面,我發現item.values().department === "Engineering"由於間距問題而始終爲假。什麼可能會導致這樣的事情,我怎麼能解決它?有沒有一種方法可以榨取額外的空間?

回答

3

使用trim()刪除,而不是if (item.values().department === "Engineering") {使用if (item.values().department.trim() === "Engineering") {

1

你嘗試使用去掉不必要的空白?它會是這樣的:

var filterOptions = { valueNames: ['department'] }; 

var employeeFilterList = new List('employees', filterOptions); 

$('#filter-engineering').click(function() { 
    employeeFilterList.filter(function(item) { 
    console.log(item.values()); 
    var sanitized = $.trim(item.values().department) 
    if (sanitized === "Engineering") { 
     return true; 
    } else { 
     return false; 
    } 
    }); 
    return false; 
});