我的目标是使用JSON数据创建搜索ListView。 这是有效的,但我的搜索功能有一个小问题。 当我输入一个单词时,它必须是完全相同的单词,它位于ListView的数组中。 主要问题是我必须输入正确的单词。 例如:当 stackoverflow 这个词是数组的一个项目时,我必须输入 stackoverflow 才能找到这个项目。 但是,当我输入 stack 或 flow 或 stacko 时,我也希望获得Item。
这是我的代码:
filterDatasource(event)
{
var searchString = event.nativeEvent.text.toLowerCase();
if (searchString != "")
{
var content = this.state.loadedContent;
var searchResultsArray = [];
for (var i = 0; i < content.length; i++) {
var detailArray = content[i];
const gattung = detailArray.Gattung;
const zugnummer = detailArray.Zugummer;
const ab = detailArray.ab;
const bis = detailArray.bis;
const wochentag = detailArray.Wochentag;
const zeitraum = detailArray.Zeitraum;
if (searchString.contains(ab.toLowerCase())) //searchString.indexOf(ab) >= 0
{
//alert('gefunden');
searchResultsArray.push(detailArray);
this.setState({ dataSource: ds.cloneWithRows(searchResultsArray) });
}
}
}
else {
this.setState({ dataSource: ds.cloneWithRows(this.state.loadedContent) });
}
},
答案 0 :(得分:3)
您可以使用indexOf执行此操作:
if (searchString.indexOf(ab.toLowerCase()) > -1)
{
...
}