[Vuejs]-Double for loop without mutating prop, VUE3

0👍

you can use map() method, like so:

computed: {
doubledValues() {
  return this.data.map(item => ({...item, options: item.options.map(obj => {
    return (obj.value != null) ? { ...obj, value: obj.value * 2 } : { ...obj }
  })})
  );
}
}

0👍

Just copy objects/arrays. It will be something like that

computed: {
  doubledValues() {
    return this.data.map((item) => {
      const resultItem = {...item};
      resultItem.options = item.options.map((option) => {
        const copyOption = {...option};
        if (copyOption.value !== null && copyOption.value !== 0) {
          copyOption.value *= 2;
        }
        return copyOption;
      });
      return resultItem;
    });
  }
}

Leave a comment