let dadosServidor = [
[
[new Date(), 1, 100],
[new Date(), 2, 100]
],
[
[new Date(), 1, 150],
[new Date(), 2, 300]
],
[
[new Date(), 3, 50],
[new Date(), 1, 100]
]
];
Boa tarde. No exercício em questão, o array inicial está definido conforme acima. Entretanto, na resolução, após o reduce, tenta-se criar um novo objeto referenciando as propriedades inexistentes "dado", "quantidade" e "valor".
Código de resolução proposto no enunciado, antes da remoção das chaves:
let listaDeNegociacoes = dadosServidor.reduce((novoArray, array) => {
// novoArray receberá os itens de array, no final terá uma dimensão apenas
return novoArray.concat(array)
})
.map(dado => {
// para cada dado, cria uma instância de negociação. No final, teremos uma nova lista só com instâncias de Negociacao
return new Negociacao(new Date(dado.data), dado.quantidade, dado.valor )
});
Ao executar o código acima, as negociações são criadas com propriedades "undefined", já que o código procura as propriedades em um array.
Para resolver a questão, foi necessário, ao invés de buscar as propriedades, referenciar as posições do array:
let listaDeNegociacoes = dadosServidor.reduce((novoArray, array) => {
// novoArray receberá os itens de array, no final terá uma dimensão apenas
return novoArray.concat(array)
})
.map(dado => {
// para cada dado, cria uma instância de negociação. No final, teremos uma nova lista só com instâncias de Negociacao
return new Negociacao(new Date(dado[0]), dado[1], dado[2] )
});
Estou correto, ou estou fazendo algo de errado?