Chcę wypchnąć pierwsze 6 elementów z tablicy obiektów do mojej świeżo utworzonej tablicy. Dostaję to w przeglądarce internetowej, ale zamiast tego lub „qwe” „qweqweqwe” otrzymuję NaN. Dlaczego?

Powiedzmy, że tablica obiektów z interfejsu API wygląda następująco:

0: {id: 340, name: "qwe", lastname: "qweqweqweq", …}
1: {id: 341, name: "qwe", lastname: "qweqweqweq", …}
2: {id: 342, name: "qwe", lastname: "qweqweqweq", …}
3: {id: 343, name: "qwe", lastname: "qweqweqweq", …}
4: {id: 344, name: "qwe", lastname: "qweqweqweq", …}
5: {id: 345, name: "qwe", lastname: "qweqweqweq", …}
6: {id: 346, name: "qwe", lastname: "qweqweqweq", …}
7: {id: 347, name: "qwe", lastname: "qweqweqweq", …}
8: {id: 348, name: "qwe", lastname: "qweqweqweq", …}

A mój kod wygląda tak:

.then(response => {
                console.log(typeof response.data, response.data);
                this.model = {
                    name: response.data.name,
                    lastname: response.data.lastname
                }
                this.userInfo.unshift(this.model.name + this.model.lastname); // Here's where i have problem
                if(this.userInfo.length > 6)
                    this.userInfo.pop();
            })
            .catch(error => {
                console.log('Something went wrong', error);
            });
        },

1
gospecomid12 2 kwiecień 2020, 15:10

3 odpowiedzi

Najlepsza odpowiedź

Jeśli cię zrozumiałem, chcesz przesunąć pierwsze 6 elementów z response do userInfo.

Jeśli tego chcesz, możesz spróbować w ten sposób:

.then(response => {
    response.data.some((e, index) => {
          this.userInfo.push(e.name + e.lastname)
          return index > 5
    })
})
0
mare96 2 kwiecień 2020, 12:56

Jest to najprawdopodobniej spowodowane tym, że response.data nie zawiera pól name i lastname, ponieważ undefined + undefined da w wyniku NaN.

0
Radu Diță 2 kwiecień 2020, 12:34

Jeśli chcesz po prostu przenieść pierwsze sześć wpisów obiektów tablicy, możesz użyć tej metody

let newArray = response.data.slice(0, 6); // the newArray will have the first six objects of the response data.
0
Rijosh 2 kwiecień 2020, 14:01