2017-02-12 10 views
2

ソートとフィルタリングにListJsを使用しているWebアプリケーションがあります。私のコードの一枚で、私はこの機能を持っている:文字列は、文字列自体と比較して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年代を使用しています。今ここに本当の問題があります。このコードはこの問題を除いてすべて動作します。あなたが見ることができるように

enter image description here

を、このオブジェクトの部門値がそこにいくつかの奇妙なエンコーディングで' Engineering '次のとおりです。

機能でconsole.logは、各項目の値は、下記に示す返します。私のコードを実行し、ページをリフレッシュすることによって、スペースの問題のためにitem.values().department === "Engineering"が常に偽であることがわかります。このようなことが起こる可能性があり、どうすればそれを回避できますか?私は余分なスペースをchompすることができる方法はありますか?

答えて

3

使用trim()if (item.values().department === "Engineering") {使用するのではなく、if (item.values().department.trim() === "Engineering") {

1

を不要な空白を削除するには、トリミング使用してみましたか?それは次のようになります: