【问题标题】:remove array object by id按 id 删除数组对象
【发布时间】:2020-11-05 06:25:23
【问题描述】:

我正在尝试按 id 删除离子存储中的数组对象。但它没有按预期工作..我该怎么办。这是我的代码

page.ts

 removeItem(id){
    this.storage.get('storedAdd').then((val) => {
      console.log(Object.keys(val))
      Object.keys(val).splice(id, 1)
      console.log(val)
     for(let element of Object.keys(val)){
        console.log(val[element])
        val[element].id.toString().splice(id,1)
         this.storage.set('storeAdd', val)
          console.log(val)
     }
}

我使用 splice 但出现此错误

ERROR Error: Uncaught (in promise): TypeError: val[element].id.toString(...).splice is not a function
TypeError: val[element].id.toString(...).splice is not a function

编辑

【问题讨论】:

    标签: angular typescript ionic-framework array-splice


    【解决方案1】:

    我认为你不能在那里使用 toString,因为 splice() 方法通过删除或替换现有元素和/或添加新元素来更改数组的内容。 删除键的示例为 0:我使用了 delete

    let myObject = {
      0: {
            "id" : 1,
            "text": "text1"
        },
     1: {
            "id" : 2,
            "text": "text2"
        }
    };
    
    delete myObject[0];
    console.log(myObject);
    

    【讨论】:

    • 感谢您的回答..当然...我已经编辑了我的问题
    • 如果你想从对象中删除键 0。我想你可以试试 delete val[0]
    • 是的。这是我的例子。您可以在浏览器中的控制台尝试:)) let myObject = { 0: { "id" : 1, "text": "text1" }, 1: { "id" : 2, "text": "text2" } }; //remove key 0 delete myObject[0]; console.log(myObject);
    • 我可以看看你的代码吗?我能知道你想在你的对象上删除什么吗?也许。我可以帮你。
    • for(let element of Object.keys(val)){ console.log(val[element]) delete val[element].id if (id != val[element].id) { this.storage.set('storeAdd', val) console.log(val) } }
    猜你喜欢
    • 2017-01-04
    • 2021-06-29
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 2019-01-10
    • 2021-10-14
    相关资源
    最近更新 更多