Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.06.2017
Сообщений: 33

Изменение данных в объекте массива

15.04.2020, 12:47. Показов 1249. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый день!
Задача такова: есть массив. Необходимо создать функцию с параметрами index и arg1 (где index - индекс массива, а arg1 - обьект для задачи с полями и значениями которые нужно изменить (это может быть title или description или то и то))

В результате у меня получилась такая функция:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const todos = [
   { title: "Задача 1", description: "Сделать что-то", completed: false }, // 0
   { title: "Задача 2", description: "Сделать что-то", completed: true }, // 1
   { title: "Задача 3", description: "Сделать что-то", completed: false } // 2
];
 
const arg1 = todos[0];
 
function updateTodo(index, arg1) {
    const newIndex = todos[index];
    let title = "Новый заголовок задачи";
    let description = "Новое описание задачи";
    
    if (title == true || description == true) {
        Object.defineProperty(newIndex, 'title', { value: title}, );
        Object.defineProperty(newIndex, 'description', { value: description});
    }
    else if (title == true) {
        Object.defineProperty(newIndex, 'title', { value: title}, );
    }
    
    else if (description == true) {
        Object.defineProperty(newIndex, 'description', { value: description});
    }
     
    console.log(todos);
}
 
updateTodo(0, arg1);
В консоль выводится массив с не измененным объектом. В чем может быть проблема?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.04.2020, 12:47
Ответы с готовыми решениями:

изменение текста в объекте SmartArt
Здравствуйте! Столкнулась с такой проблемой, очень нужна любая помощь. Есть презентация в PowerPoint, в ней на слайде есть куча разных...

Создание префаба и изменение в его дочернем объекте компонента
При нажатии пользователем кнопки должно создаться определенное количество объектов. Каждый объект представляет из себя блок, на котором...

Ввод данных об объекте и вывод данных в форме
Помогите найти ошибки unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,...

4
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
15.04.2020, 13:55
Лучший ответ Сообщение было отмечено gretyl как решение

Решение

Здравствуйте. С условиями проблема.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function updateTodo(index, arg1) {
    const newIndex = todos[index];
    let title = "Новый заголовок задачи";
    let description = "Новое описание задачи";
    
    if (title  && description) {
        Object.defineProperty(newIndex, 'title', { value: title}, );
        Object.defineProperty(newIndex, 'description', { value: description});
    }
    else if (title) {
        Object.defineProperty(newIndex, 'title', { value: title}, );
    }
    
    else if (description) {
        Object.defineProperty(newIndex, 'description', { value: description});
    }
     
    console.log(todos);
}
Добавлено через 2 минуты
Заметьте, что схема
JavaScript
1
if (a || b) { /**/ } else if (a) { /**/ } else if (b) { /**/ }
в принципе бесполезна.

Добавлено через 44 секунды
Одна из проблем.
1
0 / 0 / 0
Регистрация: 28.06.2017
Сообщений: 33
15.04.2020, 18:47  [ТС]
Почему бесполезна?
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
15.04.2020, 19:10
Потому что если условие (a || b) выполнено, то до проверки условий a и b дело не дойдёт; а если условие (a || b) не выполняется, то это означает, что неверно a и неверно b, и таким образом проверять условия a и b не имеет смысла.
Другое дело —
JavaScript
1
if (a && b) { /**/ } else if (a) { /**/ } else if (b) { /**/ }
0
0 / 0 / 0
Регистрация: 28.06.2017
Сообщений: 33
15.04.2020, 20:01  [ТС]
При отсутствии title или description выводится ошибка о том, что title или description отсутствуют. Как сделать так, чтобы могли заменяться или title, или description или они вместе? То есть, если объявлен только тайтл, чтобы заменялся только он и не было ошибки об отсутствии дескрипшена?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2020, 20:01
Помогаю со студенческими работами здесь

Сохранить изменение в объекте главного диалогового окна, после того, как второе модальное окно закрывается
Есть главное диалоговое окно и его класс А, производный от класса CDialog, есть еще одно модальное диалоговое окно (его класс Б, тоже...

Изменение данных массива
Здравствуйте Прошу вашей помощи. Допустим есть файл mas.php, там массив $mas = array ( 'text' => 'текст типо знаки' 'text2'...

Изменение данных динамического массива в функции
Всем привет! Долго думал как сделать, искал в интернетах, но так и не нашёл похожей ситуации. Задание: Организовать чтение массива одним...

Хранение и занесение данных об одном объекте
Здравствуйте, хотелось бы получить помощь в следующем вопросе. К примеру у меня есть главная таблица Пациенты (поля: ...

Выполнить сортировку данных в объекте stringgrid
Необходимо выполнить сортировку заполненных вручную данных в новом stringgrid. Данные для заполнения: склады, участки, материалы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru