Ionic Storage update value which is object

Hi, I’ve been looking for a while now in the forum, but can’t get it to work.

Basically I set my data using

    this.storage.set('data', [
      {id:1, name: 'a'}, {id: 2, name:'b'}
    ])

How do I edit the name of id:2 without overwriting the array? I’ve done some get and set but end up overwriting the entire object.

Hopefully I got some help. thanks.

1 Like

Simple solution with Array#Map:

const array = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }];
const result = array.map(x => x.id === 2 ? ({ ...x, name: 'new name' }) : x);

You can’t, not without rearranging the structure. You would have to store each little object under a separate key in order to do that.

I got it to work with

this.storage.get('data').then(valueStr => {

  let value = valueStr;

   // Modify just that property
   value[1].name = "hahaha"; <--- need to specify index

   // Save the entire data again
   this.storage.set('pets', value);

   console.log(valueStr)
});

I’m confused, because that still overwrites the entire array.

1 Like