Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [TypeScript] Object can be null / 5 сообщений из 5, страница 1 из 1
27.09.2019, 19:32
    #39868125
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[TypeScript] Object can be null
Задача весьма примитивная - надо обновить объекты в массиве, если нужного объекта нет, то создать его. Делаю как привык:
Код: 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
28.09.2019, 15:52
    #39868417
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[TypeScript] Object can be null
Код: javascript
1.
2.
3.
4.
5.
let obj = arr.find( ... );
if (! obj ) {
    obj = {.....};
    arr.push(obj);
}

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



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



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

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


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