Найдите значение каждого объекта с помощью клавиши x и измените тип значения - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу найти каждый data.id в подобном объекте и изменить тип с числа на строку.

myData = {
    {
        "userId": 1,
        "title": "delectus aut autem",
        "data":
            {
                "id": 1,
            }
    },
    {
        "userId": 2,
        "title": "delectus aut autem",
        "data": 
            {
                "id": 5,
            }
    }
}

Я попробовал что-то простое, как это, просто чтобы проверить, и это не работа:

JSON.stringify(myData[0].data.id);
console.log(typeof(myData[0].data.id)); output: number

Я полагаю, мне нужно использовать Array.map ()?

Каков наилучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

myData должен быть массивом, но в вашем случае это объект. Интересно, как работает ваш код выше. Если это массив, то для изменения этого значения вы можете перебрать массив и сделать что-то вроде этого

for(let i = 0; i < myData.length; i++) {
    myData[i].userId = myData[i].userId.toString()
}

Причина, по которой ваш код не работает, заключается в том, что JSON .stringify возвращает новое значение, а не изменения текущее значение.

0 голосов
/ 21 апреля 2020

Метод JSON.stringify не изменяет передаваемое вами значение, он просто возвращает json версию элемента.

Я предлагаю следующее:

myData[0].data.id = myData[0].data.id.toString();

или

myData[0].data.id = '' + myData[0].data.id;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...