powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [TypeScript] Object can be null
5 сообщений из 5, страница 1 из 1
[TypeScript] Object can be null
    #39868125
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача весьма примитивная - надо обновить объекты в массиве, если нужного объекта нет, то создать его. Делаю как привык:
Код: javascript
1.
2.
3.
4.
5.
6.
let obj = arr.find( ... );
if (! obj ) {
    obj = {.....};
    arr.push(obj);
}
obj.prop1 = ....


Получаю ошибку в последней строке что мол obj может быть не определен.
Спрашивается, как это обходить поэлегантнее?

Можно сделать через вспомогательную переменную в духе:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
let objTemp = arr.find( ... );
let obj;
if ( objTemp) {
    obj = objTemp;
} else {
    obj = {.....};
    arr.push(obj);
}
obj.prop1 = ....


Но как-то некрасиво это.
...
Рейтинг: 0 / 0
[TypeScript] Object can be null
    #39868417
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
let obj = arr.find( ... );
if (! obj ) {
    obj = {.....};
    arr.push(obj);
}

Вынести этот кусок в отдельную функцию?
...
Рейтинг: 0 / 0
[TypeScript] Object can be null
    #39868424
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
let obj = {.....};
let result = arr.find( ... ) || arr.push(obj);
result ? obj.prop1 = ... : result.prop1=...



...
Рейтинг: 0 / 0
[TypeScript] Object can be null
    #39868425
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote Агнец за бортом]
Код: javascript
1.
2.
3.
let obj = {.....};
let result = arr.find( ... ) || arr.push(obj);
result ? obj.prop1 = ... : result.prop1=...



В последней строчке наоборот
...
Рейтинг: 0 / 0
[TypeScript] Object can be null
    #39868547
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
Код: javascript
1.
2.
3.
4.
5.
let obj = arr.find( ... );
if (! obj ) {
    obj = {.....};
    arr.push(obj);
}

Вынести этот кусок в отдельную функцию?Пожалуй... Что-то в духе Array.prototype.findOrAdd(condition, default) будет наверное неплохо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [TypeScript] Object can be null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]