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?
 
            