#reactjs
#reactjs
Вопрос:
Я пытаюсь преобразовать массив выбранных дней в объект, чтобы условно изменить значение выбранного дня на 1, но еще не понял этого. Пожалуйста, дайте мне совет, если вы столкнулись с этим.
let result = {fruits: "orange", colour: "orange"}
const selectedWeekdays = ['monday', 'tuesday']
let defaultDay = {monday: 0, tuesday: 0, wednesday: 0, thursday: 0, friday: 0,saturday: 0, sunday: 0}
days = Object.keys(defaultDay).map(function (key, index) {
if (selectedWeekdays.includes(key)) {
return key = 1
}
})
Expected result:
result = {
fruits: "orange",
colour: "orange",
monday: 1,
tuesday: 1,
wednesday: 0,
thursday: 0,
friday: 0,
saturday: 0,
sunday: 0
}
Я знаю, что мне нужно возвращать значение, но я не знаю, как сохранить тот же формат, что и у объекта.
Ответ №1:
Проблема в том, что вы возвращаете key = 1
inside map
, что приводит [1, 1, 1, ....]
к таким числам.
возвращаемый ключ = 1 -> который возвращает
1
Вы можете попробовать любое из этих решений.
const result = {fruits: "orange", colour: "orange"}
const selectedWeekdays = ['monday', 'tuesday']
const defaultDay = { monday: 0, tuesday: 0, wednesday: 0, thursday: 0, friday: 0,saturday: 0, sunday: 0 }
selectedWeekdays.forEach(day => {
if (defaultDay[day] !== undefined) {
defaultDay[day] = 1
}
})
const finalResult = { ...result, ...defaultDay }
console.log(finalResult)
const result = {fruits: "orange", colour: "orange"}
const selectedWeekdays = ['monday', 'tuesday']
const defaultDay = { monday: 0, tuesday: 0, wednesday: 0, thursday: 0, friday: 0,saturday: 0, sunday: 0 }
for (const day in defaultDay) {
result[day] = defaultDay[day]
if (selectedWeekdays.includes(day)) {
result[day] = 1
}
}
console.log(result)