我有一个待办事项列表,使用localStorage ...我需要能够从待办事项列表中删除该项目...我尝试使用" dataArray.splice();"但问题是,当位置未知时,我不知道如何移除物体......
function getTodoItems() {
for (var i = 0; i < dataArray.length; i++) {
if (!dataArray[i].listItem.length) return;
var itemList = document.getElementById("my-todo-list");
var list = document.createElement("li");
itemList.appendChild(list);
list.innerHTML = dataArray[i].listItem;
var spanItem = document.createElement('span');
spanItem.style.float = 'right';
var myCloseSymbol = document.createTextNode('\u00D7');
spanItem.classList.add("closeBtn");
spanItem.appendChild(myCloseSymbol);
listItems[i].appendChild(spanItem);
close[i].onclick = function() {
var div = this.parentElement;
div.style.display = "none";
console.log(dataArray);
}
var list = document.getElementsByTagName('li');
list[i].onclick = function() {
this.classList.toggle("checked");
}
}
}
答案 0 :(得分:1)
然后可能会得到它的位置:
const position = dataArray.indexOf(/*whatever*/);
dataArray.splice(position, 1);
答案 1 :(得分:1)
您可以使用&#39; indexOf&#39;来获取元素的位置。 let pos = dataArray.indexOf(element); dataArray.splice(POS,1)
答案 2 :(得分:0)
IndexOf()
将无法工作。
如果需要查找数组中整个对象的索引,可以测试每个对象的值,以确定它是否正确。我会使用findIndex();
在您的控制台中尝试此操作:
var array = [];
for (var i = 0; i < 10; i++ ){ array.push({item: i}) }
console.log('Current Array: ', array);
var indexOfResult = array.indexOf({item: 3});
console.log('indexOf result: ',indexOfResult);
var findIndexResult = array.findIndex(object => object.item === 3);
console.log('findIndex result: ',findIndexResult)