this.data.list.filter((v, i, a) => { let index = a.findIndex(u => u._id == v._id) return index == i })
时间: 2024-06-05 08:10:31 浏览: 71
这段代码是用来过滤数组中的重复项。它通过使用`filter()`方法来遍历数组中的每一项,并使用`findIndex()`方法查找当前项在数组中第一次出现的位置。如果当前项的位置与第一次出现的位置相同,则将其保留,否则将其过滤掉。这样,最终得到的数组中将只包含不重复的项。值得注意的是,这个方法是基于每个对象的`_id`属性来判断重复性的。
相关问题
let filterNum = this.roomList[a].deviceList.filter(v => v.id != this.defaultData.id) this.roomList[a].deviceList = filterNum this.defaultData.areaId = this.roomList[nowCen].id this.defaultData.areaName = this.roomList[nowCen].name this.roomList[nowCen].deviceList.push(this.defaultData)数据重复如何解决
如果数据重复,可以先判断一下要添加的数据在列表中是否已经存在,如果已经存在,则不进行添加操作。可以使用数组的 `findIndex()` 方法或者 `includes()` 方法来判断。比如:
```
if (!this.roomList[nowCen].deviceList.some(v => v.id === this.defaultData.id)) {
this.defaultData.areaId = this.roomList[nowCen].id;
this.defaultData.areaName = this.roomList[nowCen].name;
this.roomList[nowCen].deviceList.push(this.defaultData);
}
```
这段代码中,`some()` 方法用来判断数组中是否存在符合条件的元素,如果存在则返回 `true`,否则返回 `false`。如果 `some()` 方法返回的结果为 `false`,说明该添加的数据在列表中不存在,此时才进行添加操作。
onSearchInput: function (e) { console.log(e.detail.value); this.setData({ keywords: e.detail.value }) this.searchInput = e.detail.value }, onSearch: function () { this.queryByName = { searchInput: this.searchInput } this.data.list = [] this.getList() this.getHistorys() }, getList: async function () { if (lib.counter('fetch')) { } else return let query = { ...this.queryByType, ...this.queryByName } console.log(111, query) let res = await wx.cloud.callFunction({ name: 'getList', data: { query, length: this.data.list.length, limit: this.data.limits } }) console.log(res.result) this.data.list = [...this.data.list, ...res.result] this.data.list.filter((v, i, a) => { let index = a.findIndex(u => u._id == v._id) return index == i }) this.setData({ list: this.data.list, isEnd: res.result.length < this.data.limits || this.data.list.length >= this.data.Maxlimits ? true : false , }) },这段代码会报错,报错信息是:Error: cloud.callFunction:fail Error: errCode: -504002 functions execute fail | errMsg: Error: errCode: -501007 invalid parameters | errMsg: [InvalidParameter] Check request parameter fail. Please check your request, but if the problem cannot be solved, contact us.; at Object.returnAsCloudSDKError (:48581/var/user/node_modules/wx-server-sdk/index.js:6187) at Object.checkError (:48581/var/user/node_modules/wx-server
很抱歉,由于我是一个自然语言生成模型,我无法直接解决你的代码问题,因为我不能运行代码。但是我可以给你一些建议来解决你的问题。
首先,根据报错信息,你的函数调用 `wx.cloud.callFunction` 中的参数有误。你需要检查你的代码,确保你传给云函数的参数是正确的。
其次,你的代码中使用了 `.counter('fetch')`,但是你没有提供这个函数。你需要确你的代码中所有使用的函数都已经定义。
最后,你的代码中使用了 `setData` 来更新页面状态,确保你已经在页面中定义了对应的变量。同时,你需要确保你的代码中没有重复定义或更新同一个变量,这可能会导致意外的行为和错误。
希望这些建议能够帮助你解决问题。如果你需要更多帮助,建议你向相关技术社区寻求帮助。
阅读全文