javascript - 删除后减少 JSON 数组中的 ID

标签 javascript jquery arrays json local-storage

我在本地存储中存储了一个数组。它是动态的。我将数据与一个 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/

相关文章:

javascript - 当我无法访问 PHP 代码时,如何将序列化 PHP 对象转换为字符串 JAVASCRIPT?

javascript - 大写字符串类型

jquery - jQuery data() 函数的作用是什么

c - 如何根据打印的数组增加计数器

PHP重命名数组的键

python - 在另一个数组中查找与沿轴的最小值对应的数组

javascript - 无法显示绑定(bind)值

javascript - Jquery 包含特殊字符和小写字母

javascript - 如何查找单词在 div 中的位置(y 坐标)

javascript - 按特定顺序在 Trello 上创建卡片