拼接数据,未知位置

时间:2017-12-28 16:58:39

标签: javascript

我有一个待办事项列表,使用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");
        }
    }
}

3 个答案:

答案 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)