我在本地存储中存储了一个数组。它是动态的。我将数据与一个 ID 一起存储,该 ID 在每次输入后都会递增。用户可以选择删除,因此,我应该从数组中删除相应的元素。但是,我希望 ID 保持升序。例如:
var jsonObj = [{'id':'1','name':'Ray','email':'ray@gmail.com'},
{'id':'2','name':'Steve','email':'steve@gmail.com'},
{'id':'3','name':'Albert','email':'albert@gmail.com'},
{'id':'4','name':'Christopher','email':'chris@gmail.com'}]
我正在为上述数组创建 HTML div。万一史蒂夫删除了他的详细信息,我希望数组如下所示:
var jsonObj = [{"id":1,"name":"Ray","email":"ray@gmail.com"},
{"id":2,"name":"Albert","email":'albert@gmail.com"},
{"id":3,"name":"Christopher","email":"chris@gmail.com"}]
以下代码不相应地工作。
for (var i=0; i<jsonObj.length; i++) {
//delete function is working fine.
jsonObj[i].id--;
break;
}
最佳答案
您可以从给定的索引迭代并递减 id
属性。
function deleteItem(i) {
array.splice(i, 1);
while (i < array.length) {
array[i].id--;
i++;
}
}
var array = [{ id: '1', name: 'Ray', email :'ray@gmail.com'}, { id: '2', name: 'Steve', email: 'steve@gmail.com' }, { id: '3', name: 'Albert', email: 'albert@gmail.com' }, { id: '4', name: 'Christopher', email: 'chris@gmail.com' }];
deleteItem(1);
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 删除后减少 JSON 数组中的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42364067/