我有一个数组定义如下:
selectedDocumentID = [];
Run Code Online (Sandbox Code Playgroud)
接下来,当我获取 ID 时,我有一个函数,以及我将 id 作为参数提供的其他函数。当我点击带有 id 的元素时,这个 id 将进入这个modifyArray。接下来,我使用 console.log 检查 id(它正在工作,我得到了 id)。之后,我创建一个新的数组列表,其中包含 selectedDocument 数组。(这行得通)。我想推送一个 id(如果它不存在)或如果存在(如果存在)将其从列表中切片...
modifyArray(id) {
let selectedDocumentID = [];
let id = 10;
console.log('this is: ' + id);
console.log(this.selectedDocumentID);
let list = this.selectedDocumentID;
let index = list.findIndex( x => x === id);
console.log(index);
if (index !== id) {
list.push(id);
console.log(list);
this.selectedDocumentID = list;
}
else {
list = list.slice(list.indexOf(id));
console.log(list);
this.selectedDocumentID = list;
}
}
Run Code Online (Sandbox Code Playgroud)
例如。我单击 id 为 2,4,5,6 的文档。
我的 selectedDocumentID = [2,4,5,6] 和列表也有 [2,4,5,6]。
接下来,我单击 id 8 的文档,我的数组 = [2,4,5,6,8],之后我单击 id 5 的文档,我的数组看起来像 [2,4,6,8]。我做错了什么?
您可以使用xor lodash 函数来使代码更简单。例如:
modifyArray(id) {
this.selectedDocumentID = _.xor(this.selectedDocumentID, [id]);
}
Run Code Online (Sandbox Code Playgroud)