#javascript #arrays #reactjs #loops #object
#javascript #массивы #reactjs #циклы #объект
Вопрос:
У меня есть это ниже пользовательских данных, поступающих из серверной части. userData
может быть null или userData.accountDetails
может быть null. Мне нужно userData.accountDetails
выполнить конкретный цикл. И присваивать весь объект userData
новому объекту newUserData
.
const userData = {
age:45,
sex: 'Male',
accountDetails: [
{
accountId: '4567',
accountName: 'checkings',
balance: 3000,
},
{
accountId: '1234',
accountName: 'savings',
balance: 3000,
}
]
}
Для достижения этого я выполняю следующие шаги
const newUserData = null;
if(userData !== null amp;amp; userData !== undefined) {
newUserData.age = userData.age,
newUserData.sex = userData.sex,
if(userData.accountDetails !== null amp;amp; userData.accountDetails !== undefined) {
newUserData.accountDetails = userData.accountDetails.map(el => {
return {
accountId: el.accountId,
accountName:el.accountName,
balance: el.balance 10;
}
}
}
}
Пожалуйста, обратите внимание, я делаю el.balance 10
это потому, что хочу, чтобы новый объект имел баланс 10, добавленный к исходному балансу. На самом деле мне нужно выполнить более сложные вычисления, но я упростил их для этого примера.
Текущий код не работает, он не входит в цикл и завершается без выдачи сообщения об ошибке в консоли. как я могу добиться такого переназначения объекта и перебирать массив accountDetails, чтобы получить новый объект, как указано выше.
Комментарии:
1. Пропущенная кавычка после
male
в данных.2. @LouysPatriceBessette — извините, это была опечатка, когда я вводил здесь код. исправлено
3. Есть пара опечаток… Но основная проблема заключается в объявлении
newUserData
asnull
вместо пустого объекта. Увидимся с вашим кодом, работающим в этом CodePen4. @LouysPatriceBessette — действительно. это была ошибка. я подумал, что если я присвою ему значение null. я могу определить структуру объекта позже. но часть создания должна быть упомянута как объект. спасибо за исправление
Ответ №1:
Вы могли бы сопоставить его так же, как вы это делали с возрастом и полом. Кроме того, вы можете проверить, является ли объект нулевым, выполнив if (userData)
const newUserData = null;
if(userData) {
newUserData.age = userData.age,
newUserData.sex = userData.sex,
if(userData.accountDetails) {
newUserData.accountDetails.Id = el.accountId
newUserData.accountDetails.accountName = el.accountName
newUserData.accountDetails.balance = el.balance 10
}
}
}
}