需求:关键字搜索,将关键字在搜索结果中突出显示.
思路:
- 将结果list的项用关键字分割为数组,把关键字
arr[length -1]
push到数组末尾。 - 遍历新数组,依次展示每一项并把最后一项补在每一项后面。
arr[0],arr[arr.length -1],arr[1],arr[arr.length - 1]...arr[length -2]
- 倒数第二项不补
arr[length -1]
wxml
<block wx:for="{{search_result.resultList}}">
...
<block wx:for="{{item.arr}}" wx:for-item="arrItem" wx:key="index">
<block wx:if="{{index < item.arr.length-1}}">
<view>{{arrItem}}</view> <!-- normalWords -->
<view wx:if="{{item.arr.length -2 !== index}}">{{item.arr[item.arr.length-1]}}</view> <!-- keyWord -->
</block>
</block>
...
</block>
js
search_result.resultList.forEach(item => {
item.arr = item.resultString.split(keyword);
item.arr.push(keyword);
})