AngularJS过滤列表不区分大小写

时间:2015-12-10 00:05:14

标签: angularjs angularjs-directive

我有一个主题列表,我想搜索我的列表并返回有效的结果,但它是案例敏感的,并没有返回正确的结果

var subjects = [
  {id: '1', name: 'Maths'}, 
  {id: '2', name: 'English'},
  {id: '3', name: 'Physics'}
]; 

var returnValue = { items: [] };
subjects.forEach(function(item){

  if (item.name.indexOf(query) > -1 ){
     returnValue.items.push(item);
  }
  else if (item.id.indexOf(query) > -1 ){
     returnValue.items.push(item);
  }
});
console.log(returnValue)

因此,例如,如果我输入文字' m',当它搜索主题列表时,它应该返回数学,但现在它返回nil但是如果我输入' M',然后它返回主题数学。

解决这个问题的任何帮助?非常感激。

1 个答案:

答案 0 :(得分:1)

您始终可以将比较值转换为小写,然后进行比较。

ar subjects = [
  {id: '1', name: 'Maths'}, 
  {id: '2', name: 'English'},
  {id: '3', name: 'Physics'}
]; 

var returnValue = { items: [] };
subjects.forEach(function(item){

  var itemNameLower = item.name.toLowerCase();
  var queryLower = query.toLowerCase();

  if (itemNameLower.indexOf(queryLower) > -1 ){
     returnValue.items.push(item);
  }
  else if (item.id.indexOf(queryLower) > -1 ){
     returnValue.items.push(item);
  }
});
console.log(returnValue)