Почему нельзя преобразовать ISO-преобразование в функцию отображения массива Javascript? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть файл React, который использует вызов get для получения данных JSON.В этом возвращении JSON находится массив, содержащий объекты в следующем формате:

{
    device_id: "5c07f86f-3763-477f-81a7-558395a9252e"
    device_type: "MX480"
    domain: "JUNIPER"
    domain_id: "5c07f843-7e67-4ce1-bf91-d0d7b04f35f6"
    resources: null
    sync_status: "idle"
    sync_time: "2018-12-10T19:18:20+00:00"
}

Что мне нужно сделать, так это отобразить все эти объекты и преобразовать sync_time с помощью toISOString (). Slice (0,10).).Вот мое слабое усилие:

const newSyncDates = names.map(item => item.sync_time)
const finalSyncDates = newSyncDates.map((n)=> {
    return n.toISOString().slice(0,10)
})

Когда я запускаю это, я получаю сообщение об ошибке "n.toISOString не является функцией".Не знаю, что делать .... любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Помните, у JSON нет типа Date.Вы звоните n.toISOString(), когда n является строкой.

const finalSyncDates = names.map(item => new Date(item.sync_time))
                            .map(n => n.toISOString().slice(0,10));
0 голосов
/ 11 декабря 2018

Попробуйте это:

const finalSyncDates = newSyncDates.map((n)=> {
    return (new Date(n)).toISOString().slice(0,10)
})

Вы пытались получить доступ к методу toISOString в строке вместо даты.

...