合并去重函数方法
在 上拉加载 操作时,都会运用到数组合并( a.concat(b) 函数)功能,但是此函数只具备合并,没有去重功能,这里提供合并去重的函数, 有部分场景会使用到。
- 使用场景一:当已渲染列表删除是通过索引前端列表集合中直接删除后并未从后端刷新重新拉取数据加载(提升用户使用体验感),再次上拉加载时就会出现数据吞并问题,这时候的上拉加载就需要合并去重功能的函数
合并去重演示
使用实例调用函数方式进行使用,这里使用默认实例进行演示
getArrayMerge(p1 : UTSJSONObject[], p2 : UTSJSONObject[])
参数
| params | 类型 | 描述 |
|---|---|---|
| p1 | UTSJSONObject[] | 原数组 |
| p2 | UTSJSONObject[] | 合并数组 |
演示
ts
<script setup>
import { ref } from "vue";
import { http } from "@/uni_modules/ucs-request";
let dataList = ref<UTSJSONObject[]>([])
http.get({
url: '/xxx',
success: (res) => {
const data = res.data as UTSJSONObject;
// 这里仅为示例,具体情况请根据业务返回值进行更改
dataList.value = http.getArrayMerge(dataList.value, data.getArray('list') as UTSJSONObject[])
}
})
</script>getArrayMergeRefresh(p1 : UTSJSONObject[], p2 : UTSJSONObject[], refresh : boolean)
参数
| params | 类型 | 描述 |
|---|---|---|
| p1 | UTSJSONObject[] | 原数组 |
| p2 | UTSJSONObject[] | 合并数组 |
| refresh | boolean | 是否为刷新时。如果为true,则只返回p2的数组值,为false则返回p1和p2合并后的数组 |
演示
ts
<script setup>
import { ref } from "vue";
import { http } from "@/uni_modules/ucs-request";
let dataList = ref<UTSJSONObject[]>([])
http.get({
url: '/xxx',
success: (res) => {
const data = res.data as UTSJSONObject;
// 这里仅为示例,具体情况请根据业务返回值进行更改
dataList.value = http.getArrayMergeRefresh(dataList.value, data.getArray('list') as UTSJSONObject[], true)
}
})
</script>