С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для gdfgdf333
2 / 2 / 2
Регистрация: 23.05.2019
Сообщений: 351

Обясните про SET

05.09.2019, 22:14. Показов 527. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
https://developer.mozilla.org/... bjects/Set

1 в чем прикол применять разные методы .value .keys .entries если резултат один и тот же?

for (let item of mySet) console.log(item);

// выведет элементы по порядку: 1, "some text", {"a": 1, "b": 2}
for (let item of mySet.keys()) console.log(item);

// выведет элементы по порядку: 1, "some text", {"a": 1, "b": 2}
for (let item of mySet.values()) console.log(item);

2 И как обратится к сет по номеру по аналогу как у массивов arr[5] ?
3 как к примеру осуществить поиск типа include?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2019, 22:14
Ответы с готовыми решениями:

Обясните про функцию bioskey()
:help: Обясните как работать з bioskey на С. Бо надо сделать задания(создать меню с использованиям bioskey с помощью стрелок і Ентер).А я...

Обясните пожалуйста все про классы в С++
Потолковее и доходчиво,а то читаю С++ сам изучаю вапще тема не понятна

Свойства get, set. Задача про точку в круге
Задачи на использование классов и объектов, в которых данные описаны в качестве свойств. Реализовать класс заданной структуры. В нём...

4
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
06.09.2019, 05:50
Цитата Сообщение от gdfgdf333 Посмотреть сообщение
если резултат один и тот же?
ну дык в стандарте же так и написано про keys()
The values() method returns a new Iterator object that contains the values for each element in the Set object in insertion order.
The keys() method is an alias for this method (for similarity with Map objects); it behaves exactly the same and returns values of Set elements.

Метод values () возвращает новый объект Iterator, который содержит значения для каждого элемента в объекте Set в порядке вставки.
Метод keys () является псевдонимом для этого метода (для сходства с объектами Map); он ведет себя точно так же и возвращает значения элементов Set.
т.е. чтобы API было схож с объектом Map

Цитата Сообщение от gdfgdf333 Посмотреть сообщение
как к примеру осуществить поиск типа include?
Метод has() возвращает логическое значение, показывающее, существует ли элемент с указанным значением в объекте Set или нет.
https://developer.mozilla.org/... ts/Set/has
Цитата Сообщение от gdfgdf333 Посмотреть сообщение
как обратится к сет по номеру по аналогу как у массивов arr[5] ?
никак, это вам не массив, а итерируемый объект. Но если сильно хочется, можно преобразовать Set в массив
JavaScript
1
console.log([...mySet]);
а с чего вы взяли что у .entries
Цитата Сообщение от gdfgdf333 Посмотреть сообщение
резултат один и тот же?
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
06.09.2019, 06:35
gdfgdf333, klopp, остается добавить, что в JS у штатного Set есть серьезный недостаток:
идентичность элементов определяет по оператору тройного равенства ===
То есть штатный Set как множество уникальных элементов идеально подходит для элементов-примитивов,
а для объектов будет жестко использовать ссылочное равенство,
никак не переопределяя проверку на эквивалентность по тому же самому полю Id.

В результате для бизнес-модели нам придется выбросить штатный Set и использовать стороннюю нормальную реализацию Set с методом equals().

Добавлено через 14 минут
Пример нераспознанной идентичности дат в штатном Set:
PHP/HTML
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
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <script>
        let d1 = new Date(2019, 8, 6);
        let d2 = new Date(2019, 8, 6);
        console.log(d1 == d2);
        let myset = new Set([d1, d2]);
        for (let key of myset.keys()) {
            console.log(key);
        }
        console.log("");
        for (let value of myset.values()) {
            console.log(value);
        }
        console.log("");
        // в Map entry - массив из ключа и значения, 
        // в Set entry - массив из повторяющегося элемента
        for (let entry of myset.entries()) {
            console.log(entry);
        }
        console.log("");
    </script>
</body>
</html>
Добавлено через 10 минут
Цитата Сообщение от gdfgdf333 Посмотреть сообщение
2 И как обратится к сет по номеру по аналогу как у массивов arr[5] ?
Обращение по номеру в массиве это на самом деле обращение к свойству, у которого имя целое неотрицательное число в виде строки, то есть '5'
В Set имя свойства равно значению этого свойства. То есть, если Set состоит не из целых чисел, то обратиться к несуществующему свойству '5' нельзя. Вернет undefined.
JavaScript
1
console.log(myset[5]);
1
 Аватар для gdfgdf333
2 / 2 / 2
Регистрация: 23.05.2019
Сообщений: 351
06.09.2019, 08:05  [ТС]
еще вопрос а как получить одно значение из set?
типа как у map.get

nset.add(434,'dfd');
nset.add({name:'ivan'});
nset.add('text');

а то в манах только перебор почемуто
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
06.09.2019, 08:23
Цитата Сообщение от gdfgdf333 Посмотреть сообщение
как получить одно значение из set?
Для примитивов (числа, строки, булева значения), проверка на наличие элемента это и есть получение элемента:
JavaScript
1
console.log(nset.has('text'));
nset.add({name:'ivan'}); - для штатного Set так нельзя делать. Это добавление элемента в черную дыру, где мы напрямую больше этот элемент не найдём. Можно будет найти только итератором.
Надо сначала где-нибудь в переменной сохранить ссылку на объект. Тогда объект можно будет сравнить на эквивалентность по тройному равенству:
JavaScript
1
2
3
let obj = {name:'ivan'};
nset.add(obj);
console.log(nset.has(obj));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.09.2019, 08:23
Помогаю со студенческими работами здесь

Union(Set set1, Set set2) и intersect(Set set1, Set set2)
Напишите методы union(Set set1, Set set2) и intersect(Set set1, Set set2), реализующих операции объединения и пересечения двух множеств....

Ошибка SQL запрос: SET CHARACTER SET 'utf8';
Два года назад на одном из форумов некто задал вопрос (см. ниже), на который так никто и не ответил. У меня сейчас точная копия проблемы....

Чем отличается guid id {get; set;} от int id {get; set;}
Подскажите пожалуйста чем отличается guid id {get; set;} от int id {get; set;}?

Чем отличается private set от set?
Чем отличается private set от set? Зачем это вообще используется?

обясните
struct stack { int component; struct stack *next; } Обьясните что происходит и что есть что ну то-есть коментари для каждой...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru