Size: a a a

JavaScript Rules

2020 January 31

AL

Adrián Lazaróv in JavaScript Rules
как всегда спасли!! благодарю Вас!
источник

AL

Adrián Lazaróv in JavaScript Rules
как записаться на курс для чайника+?))
источник

OS

Oleg S in JavaScript Rules
Adrián Lazaróv
как записаться на курс для чайника+?))
напишите Александру в личку
источник

AL

Alexander Luschenko in JavaScript Rules
Adrián Lazaróv
как записаться на курс для чайника+?))
пишите в личку
источник

AC

Alexey Chernousov in JavaScript Rules
Здравствуйте. Есть такой массив:
[
{ roomId: '1eh15', roomUsers: [45, 56, 43] },
{ roomId: '1e415', roomUsers: [105, 55, 44] },
{ roomId: '1e351', roomUsers: [155, 46, 155] }
]

Моя цель - добавить в roomUsers новое значение, если roomId === внешней переменной currentRoomId. Проблема в том, что я никак не допру - как нам одновременно и пройтись по массиву, и проверить id и запушить. Через map такое сделать у меня не вышло, а другие методы, вроде как, и не очень то подходят.
Как это сделать?
источник

OS

Oleg S in JavaScript Rules
Alexey Chernousov
Здравствуйте. Есть такой массив:
[
{ roomId: '1eh15', roomUsers: [45, 56, 43] },
{ roomId: '1e415', roomUsers: [105, 55, 44] },
{ roomId: '1e351', roomUsers: [155, 46, 155] }
]

Моя цель - добавить в roomUsers новое значение, если roomId === внешней переменной currentRoomId. Проблема в том, что я никак не допру - как нам одновременно и пройтись по массиву, и проверить id и запушить. Через map такое сделать у меня не вышло, а другие методы, вроде как, и не очень то подходят.
Как это сделать?
find проверить есть нужное и потом пуш
источник

AC

Alexey Chernousov in JavaScript Rules
Oleg S
find проверить есть нужное и потом пуш
Через find он мне просто отдаст результат поиска, а не ссылку на этот элемент
источник

OS

Oleg S in JavaScript Rules
Alexey Chernousov
Через find он мне просто отдаст результат поиска, а не ссылку на этот элемент
какая разница? это будет одно и то же
источник

AC

Alexey Chernousov in JavaScript Rules
Oleg S
какая разница? это будет одно и то же
Вернет он мне { roomId: '1e415', roomUsers: [105, 55,44] } - что я с этим делать то буду?
https://codepen.io/dizox/pen/NWPZeaW
источник

OS

Oleg S in JavaScript Rules
Alexey Chernousov
Вернет он мне { roomId: '1e415', roomUsers: [105, 55,44] } - что я с этим делать то буду?
https://codepen.io/dizox/pen/NWPZeaW
в чем проблема сюда пуш сделать в румЮзерс?
источник

AC

Alexey Chernousov in JavaScript Rules
Oleg S
в чем проблема сюда пуш сделать в румЮзерс?
в том что сделаю пуш в { roomId: '1e415', roomUsers: [105, 55,44] }, а не в весь исходный массив
источник

OS

Oleg S in JavaScript Rules
Alexey Chernousov
в том что сделаю пуш в { roomId: '1e415', roomUsers: [105, 55,44] }, а не в весь исходный массив
так цель же добавить в существующий элемент
источник

AC

Alexey Chernousov in JavaScript Rules
Oleg S
так цель же добавить в существующий элемент
Смотри. Ты пишешь:
const findedElem = исходный_массив.find( ... );
findedElem['roomUsers'].push('новый_id');

Но это НИКАК не повлияет на исходный массив и никак не даст тебе новый с нужным результатом.
Ты просто получишь объект с измененым полем, но не весь массив объектов с объектом, где это поле изменено.
Посмотри, пожалуйста, codepen, я там очень подробно расписал что мне нужно.
источник

OS

Oleg S in JavaScript Rules
Alexey Chernousov
Смотри. Ты пишешь:
const findedElem = исходный_массив.find( ... );
findedElem['roomUsers'].push('новый_id');

Но это НИКАК не повлияет на исходный массив и никак не даст тебе новый с нужным результатом.
Ты просто получишь объект с измененым полем, но не весь массив объектов с объектом, где это поле изменено.
Посмотри, пожалуйста, codepen, я там очень подробно расписал что мне нужно.
пруф пожалуйста что оно не изменится никак, изменится исходный массив
источник

I

Igor® in JavaScript Rules
Alexey Chernousov
Смотри. Ты пишешь:
const findedElem = исходный_массив.find( ... );
findedElem['roomUsers'].push('новый_id');

Но это НИКАК не повлияет на исходный массив и никак не даст тебе новый с нужным результатом.
Ты просто получишь объект с измененым полем, но не весь массив объектов с объектом, где это поле изменено.
Посмотри, пожалуйста, codepen, я там очень подробно расписал что мне нужно.
так пуш по roomId делай
источник

I

Igor® in JavaScript Rules
Oleg S
пруф пожалуйста что оно не изменится никак, изменится исходный массив
а он делает поиск через мап, хотя не хочет создавать новый массив
источник

AC

Alexey Chernousov in JavaScript Rules
Oleg S
пруф пожалуйста что оно не изменится никак, изменится исходный массив
Действительно, но это же бред. У нас find просто создает копию элемента, который найдет по условию. Почему если я туда буду пушить, он запушит и в основной массив? Или find отдает ссылку на элемент? Тут даже написано - значение, а не ссылку.
источник

OS

Oleg S in JavaScript Rules
Alexey Chernousov
Действительно, но это же бред. У нас find просто создает копию элемента, который найдет по условию. Почему если я туда буду пушить, он запушит и в основной массив? Или find отдает ссылку на элемент? Тут даже написано - значение, а не ссылку.
а чем являются элементы у тебя, объектами, и это ссылки
источник

AC

Alexey Chernousov in JavaScript Rules
Oleg S
а чем являются элементы у тебя, объектами, и это ссылки
Но тут сказано значение, а не ссылки. Это же разные вещи...
источник

OS

Oleg S in JavaScript Rules
Alexey Chernousov
Но тут сказано значение, а не ссылки. Это же разные вещи...
значение объекта и есть ссылка, ссылка идет не на позицию элемента в массиве, а на сам объект, даже если потом этот массив отсортируется ссылка будет на сам объект
источник