Массив объектов в методе Vue

#javascript #arrays #object #vue.js

#javascript #массивы #объект #vue.js

Вопрос:

У меня есть объект типа «Sorteio», а внутри него вектор объектов типа «Resultado», в частности 6 Resultados. Я создаю их таким образом:

 saveSorteio() {
      var data = {
        loteria: this.sorteio.loteria,
        resultados: [
          {
            valor: this.sorteio.resultados[0].valor,
            animal: this.sorteio.resultados[0].animal
          },
          {
            valor: this.sorteio.resultados[1].valor,
            animal: this.sorteio.resultados[1].animal
          },
          /* ... */
        ]
      };
}
 

Есть ли другой способ создать экземпляр 6 сразу или мне нужно продолжать вызывать индекс по индексу?

Комментарии:

1. попробуйте выполнить цикл по этому массиву

Ответ №1:

Вы можете использовать #array.map() для создания массива, который извлекает эти свойства:

 saveSorteio() {
    var data = {
      loteria: this.sorteio.loteria,
      resultados = this.sorteio.resultados.map(({valor, animal}) => ({valor, animal}))

        /* ... */

    };
}
 

Например:

 sorteio = {
    resultados: [
        {valor: "v1", animal: 'a1', somethingelse:"else"},
        {valor: "v2", animal: 'a2', somethingelse:"else"},
        {valor: "v3", animal: 'a3', somethingelse:"else"}
    ]
}
let newArray = sorteio.resultados.map(({valor, animal}) => ({valor, animal}))
console.log(newArray) 

Комментарии:

1. Спасибо! Это ответ, который я искал.