Copied 5.4 to latest with mike 0.5.5
[GitHub/WoltLab/woltlab.github.io.git] / latest / javascript / new-api_data-structures / index.html
1
2 <!doctype html>
3 <html lang="en" class="no-js">
4 <head>
5
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width,initial-scale=1">
8
9
10
11
12 <link rel="shortcut icon" href="../../assets/default.favicon.ico">
13 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.0.3">
14
15
16
17 <title>Data Structures - WoltLab Suite Documentation</title>
18
19
20
21 <link rel="stylesheet" href="../../assets/stylesheets/main.1655a90d.min.css">
22
23
24 <link rel="stylesheet" href="../../assets/stylesheets/palette.7fa14f5b.min.css">
25
26
27
28 <meta name="theme-color" content="#009485">
29
30
31
32
33
34
35
36
37 <link rel="stylesheet" href="../../stylesheets/extra.css">
38
39
40
41
42
43 </head>
44
45
46
47
48
49
50
51 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="">
52
53
54
55 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
56 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
57 <label class="md-overlay" for="__drawer"></label>
58 <div data-md-component="skip">
59
60
61 <a href="#data-structures-javascript-api" class="md-skip">
62 Skip to content
63 </a>
64
65 </div>
66 <div data-md-component="announce">
67
68 <aside class="md-announce">
69 <div class="md-announce__inner md-grid md-typeset">
70
71 <a href="https://www.woltlab.com">Back to <strong>woltlab.com</strong></a>
72
73 </div>
74 </aside>
75
76 </div>
77
78
79
80 <header class="md-header" data-md-component="header">
81 <nav class="md-header__inner md-grid" aria-label="Header">
82 <a href="../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation">
83
84 <img src="../../assets/logo.png" alt="logo">
85
86 </a>
87 <label class="md-header__button md-icon" for="__drawer">
88 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
89 </label>
90 <div class="md-header__title" data-md-component="header-title">
91 <div class="md-header__ellipsis">
92 <div class="md-header__topic">
93 <span class="md-ellipsis">
94 WoltLab Suite Documentation
95 </span>
96 </div>
97 <div class="md-header__topic" data-md-component="header-topic">
98 <span class="md-ellipsis">
99
100 Data Structures
101
102 </span>
103 </div>
104 </div>
105 </div>
106 <div class="md-header__options">
107
108 </div>
109
110 <label class="md-header__button md-icon" for="__search">
111 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
112 </label>
113
114 <div class="md-search" data-md-component="search" role="dialog">
115 <label class="md-search__overlay" for="__search"></label>
116 <div class="md-search__inner" role="search">
117 <form class="md-search__form" name="search">
118 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
119 <label class="md-search__icon md-icon" for="__search">
120 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
121 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
122 </label>
123 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
124 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
125 </button>
126 </form>
127 <div class="md-search__output">
128 <div class="md-search__scrollwrap" data-md-scrollfix>
129 <div class="md-search-result" data-md-component="search-result">
130 <div class="md-search-result__meta">
131 Initializing search
132 </div>
133 <ol class="md-search-result__list"></ol>
134 </div>
135 </div>
136 </div>
137 </div>
138 </div>
139
140
141 </nav>
142 </header>
143
144 <div class="md-container" data-md-component="container">
145
146
147
148
149 <main class="md-main" data-md-component="main">
150 <div class="md-main__inner md-grid">
151
152
153
154 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
155 <div class="md-sidebar__scrollwrap">
156 <div class="md-sidebar__inner">
157
158
159
160
161
162 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
163 <label class="md-nav__title" for="__drawer">
164 <a href="../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation">
165
166 <img src="../../assets/logo.png" alt="logo">
167
168 </a>
169 WoltLab Suite Documentation
170 </label>
171
172 <ul class="md-nav__list" data-md-scrollfix>
173
174
175
176
177
178
179
180
181 <li class="md-nav__item">
182 <a href="../../getting-started/" class="md-nav__link">
183 Getting Started
184 </a>
185 </li>
186
187
188
189
190
191
192
193
194
195
196
197 <li class="md-nav__item md-nav__item--nested">
198
199
200 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
201
202 <label class="md-nav__link" for="__nav_2">
203 PHP API
204 <span class="md-nav__icon md-icon"></span>
205 </label>
206 <nav class="md-nav" aria-label="PHP API" data-md-level="1">
207 <label class="md-nav__title" for="__nav_2">
208 <span class="md-nav__icon md-icon"></span>
209 PHP API
210 </label>
211 <ul class="md-nav__list" data-md-scrollfix>
212
213
214
215
216
217 <li class="md-nav__item">
218 <a href="../../php/pages/" class="md-nav__link">
219 Pages
220 </a>
221 </li>
222
223
224
225
226
227
228
229 <li class="md-nav__item">
230 <a href="../../php/database-objects/" class="md-nav__link">
231 Database Objects
232 </a>
233 </li>
234
235
236
237
238
239
240
241 <li class="md-nav__item">
242 <a href="../../php/database-access/" class="md-nav__link">
243 Database Access
244 </a>
245 </li>
246
247
248
249
250
251
252
253 <li class="md-nav__item">
254 <a href="../../php/exceptions/" class="md-nav__link">
255 Exceptions
256 </a>
257 </li>
258
259
260
261
262
263
264
265
266 <li class="md-nav__item md-nav__item--nested">
267
268
269 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
270
271 <label class="md-nav__link" for="__nav_2_5">
272 API
273 <span class="md-nav__icon md-icon"></span>
274 </label>
275 <nav class="md-nav" aria-label="API" data-md-level="2">
276 <label class="md-nav__title" for="__nav_2_5">
277 <span class="md-nav__icon md-icon"></span>
278 API
279 </label>
280 <ul class="md-nav__list" data-md-scrollfix>
281
282
283
284
285
286 <li class="md-nav__item">
287 <a href="../../php/api/caches/" class="md-nav__link">
288 Caches
289 </a>
290 </li>
291
292
293
294
295
296
297
298 <li class="md-nav__item">
299 <a href="../../php/api/comments/" class="md-nav__link">
300 Comments
301 </a>
302 </li>
303
304
305
306
307
308
309
310 <li class="md-nav__item">
311 <a href="../../php/api/cronjobs/" class="md-nav__link">
312 Cronjobs
313 </a>
314 </li>
315
316
317
318
319
320
321
322 <li class="md-nav__item">
323 <a href="../../php/api/events/" class="md-nav__link">
324 Events
325 </a>
326 </li>
327
328
329
330
331
332
333
334
335 <li class="md-nav__item md-nav__item--nested">
336
337
338 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_5" type="checkbox" id="__nav_2_5_5" >
339
340 <label class="md-nav__link" for="__nav_2_5_5">
341 Form Builder
342 <span class="md-nav__icon md-icon"></span>
343 </label>
344 <nav class="md-nav" aria-label="Form Builder" data-md-level="3">
345 <label class="md-nav__title" for="__nav_2_5_5">
346 <span class="md-nav__icon md-icon"></span>
347 Form Builder
348 </label>
349 <ul class="md-nav__list" data-md-scrollfix>
350
351
352
353
354
355 <li class="md-nav__item">
356 <a href="../../php/api/form_builder/overview/" class="md-nav__link">
357 Overview
358 </a>
359 </li>
360
361
362
363
364
365
366
367 <li class="md-nav__item">
368 <a href="../../php/api/form_builder/structure/" class="md-nav__link">
369 Structure
370 </a>
371 </li>
372
373
374
375
376
377
378
379 <li class="md-nav__item">
380 <a href="../../php/api/form_builder/form_fields/" class="md-nav__link">
381 Fields
382 </a>
383 </li>
384
385
386
387
388
389
390
391 <li class="md-nav__item">
392 <a href="../../php/api/form_builder/validation_data/" class="md-nav__link">
393 Validation and Data
394 </a>
395 </li>
396
397
398
399
400
401
402
403 <li class="md-nav__item">
404 <a href="../../php/api/form_builder/dependencies/" class="md-nav__link">
405 Dependencies
406 </a>
407 </li>
408
409
410
411 </ul>
412 </nav>
413 </li>
414
415
416
417
418
419
420
421 <li class="md-nav__item">
422 <a href="../../php/api/package_installation_plugins/" class="md-nav__link">
423 Package Installation Plugins
424 </a>
425 </li>
426
427
428
429
430
431
432
433 <li class="md-nav__item">
434 <a href="../../php/api/user_activity_points/" class="md-nav__link">
435 User Activity Points
436 </a>
437 </li>
438
439
440
441
442
443
444
445 <li class="md-nav__item">
446 <a href="../../php/api/user_notifications/" class="md-nav__link">
447 User Notifications
448 </a>
449 </li>
450
451
452
453
454
455
456
457 <li class="md-nav__item">
458 <a href="../../php/api/sitemaps/" class="md-nav__link">
459 Sitemaps
460 </a>
461 </li>
462
463
464
465 </ul>
466 </nav>
467 </li>
468
469
470
471
472
473
474
475 <li class="md-nav__item">
476 <a href="../../php/code-style/" class="md-nav__link">
477 Code Style
478 </a>
479 </li>
480
481
482
483
484
485
486
487 <li class="md-nav__item">
488 <a href="../../php/apps/" class="md-nav__link">
489 Apps
490 </a>
491 </li>
492
493
494
495
496
497
498
499 <li class="md-nav__item">
500 <a href="../../php/gdpr/" class="md-nav__link">
501 GDPR
502 </a>
503 </li>
504
505
506
507 </ul>
508 </nav>
509 </li>
510
511
512
513
514
515
516
517
518
519
520
521 <li class="md-nav__item md-nav__item--nested">
522
523
524 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
525
526 <label class="md-nav__link" for="__nav_3">
527 Languages, Templates & CSS
528 <span class="md-nav__icon md-icon"></span>
529 </label>
530 <nav class="md-nav" aria-label="Languages, Templates & CSS" data-md-level="1">
531 <label class="md-nav__title" for="__nav_3">
532 <span class="md-nav__icon md-icon"></span>
533 Languages, Templates & CSS
534 </label>
535 <ul class="md-nav__list" data-md-scrollfix>
536
537
538
539
540
541 <li class="md-nav__item">
542 <a href="../../view/languages/" class="md-nav__link">
543 Languages
544 </a>
545 </li>
546
547
548
549
550
551
552
553 <li class="md-nav__item">
554 <a href="../../view/templates/" class="md-nav__link">
555 Templates
556 </a>
557 </li>
558
559
560
561
562
563
564
565 <li class="md-nav__item">
566 <a href="../../view/css/" class="md-nav__link">
567 CSS
568 </a>
569 </li>
570
571
572
573 </ul>
574 </nav>
575 </li>
576
577
578
579
580
581
582
583
584
585
586
587
588
589 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
590
591
592 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" checked>
593
594 <label class="md-nav__link" for="__nav_4">
595 JavaScript API
596 <span class="md-nav__icon md-icon"></span>
597 </label>
598 <nav class="md-nav" aria-label="JavaScript API" data-md-level="1">
599 <label class="md-nav__title" for="__nav_4">
600 <span class="md-nav__icon md-icon"></span>
601 JavaScript API
602 </label>
603 <ul class="md-nav__list" data-md-scrollfix>
604
605
606
607
608
609 <li class="md-nav__item">
610 <a href="../general-usage/" class="md-nav__link">
611 General Usage
612 </a>
613 </li>
614
615
616
617
618
619
620
621
622
623
624 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
625
626
627 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" checked>
628
629 <label class="md-nav__link" for="__nav_4_2">
630 New API
631 <span class="md-nav__icon md-icon"></span>
632 </label>
633 <nav class="md-nav" aria-label="New API" data-md-level="2">
634 <label class="md-nav__title" for="__nav_4_2">
635 <span class="md-nav__icon md-icon"></span>
636 New API
637 </label>
638 <ul class="md-nav__list" data-md-scrollfix>
639
640
641
642
643
644 <li class="md-nav__item">
645 <a href="../new-api_writing-a-module/" class="md-nav__link">
646 Writing a module
647 </a>
648 </li>
649
650
651
652
653
654
655
656
657
658 <li class="md-nav__item md-nav__item--active">
659
660 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
661
662
663
664
665 <label class="md-nav__link md-nav__link--active" for="__toc">
666 Data Structures
667 <span class="md-nav__icon md-icon"></span>
668 </label>
669
670 <a href="./" class="md-nav__link md-nav__link--active">
671 Data Structures
672 </a>
673
674
675 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
676
677
678
679
680
681 <label class="md-nav__title" for="__toc">
682 <span class="md-nav__icon md-icon"></span>
683 Table of contents
684 </label>
685 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
686
687 <li class="md-nav__item">
688 <a href="#introduction" class="md-nav__link">
689 Introduction
690 </a>
691
692 </li>
693
694 <li class="md-nav__item">
695 <a href="#dictionary" class="md-nav__link">
696 Dictionary
697 </a>
698
699 <nav class="md-nav" aria-label="Dictionary">
700 <ul class="md-nav__list">
701
702 <li class="md-nav__item">
703 <a href="#setkey-string-value-any" class="md-nav__link">
704 set(key: string, value: any)
705 </a>
706
707 </li>
708
709 <li class="md-nav__item">
710 <a href="#deletekey-string" class="md-nav__link">
711 delete(key: string)
712 </a>
713
714 </li>
715
716 <li class="md-nav__item">
717 <a href="#haskey-string-boolean" class="md-nav__link">
718 has(key: string): boolean
719 </a>
720
721 </li>
722
723 <li class="md-nav__item">
724 <a href="#getkey-string-any" class="md-nav__link">
725 get(key: string): any
726 </a>
727
728 </li>
729
730 <li class="md-nav__item">
731 <a href="#foreachcallback-value-any-key-string-void" class="md-nav__link">
732 forEach(callback: (value: any, key: string) =&gt; void)
733 </a>
734
735 </li>
736
737 <li class="md-nav__item">
738 <a href="#size-number" class="md-nav__link">
739 size: number
740 </a>
741
742 </li>
743
744 </ul>
745 </nav>
746
747 </li>
748
749 <li class="md-nav__item">
750 <a href="#list" class="md-nav__link">
751 List
752 </a>
753
754 <nav class="md-nav" aria-label="List">
755 <ul class="md-nav__list">
756
757 <li class="md-nav__item">
758 <a href="#addvalue-any" class="md-nav__link">
759 add(value: any)
760 </a>
761
762 </li>
763
764 <li class="md-nav__item">
765 <a href="#clear" class="md-nav__link">
766 clear()
767 </a>
768
769 </li>
770
771 <li class="md-nav__item">
772 <a href="#deletevalue-any-boolean" class="md-nav__link">
773 delete(value: any): boolean
774 </a>
775
776 </li>
777
778 <li class="md-nav__item">
779 <a href="#foreachcallback-value-any-void" class="md-nav__link">
780 forEach(callback: (value: any) =&gt; void)
781 </a>
782
783 </li>
784
785 <li class="md-nav__item">
786 <a href="#hasvalue-any-boolean" class="md-nav__link">
787 has(value: any): boolean
788 </a>
789
790 </li>
791
792 <li class="md-nav__item">
793 <a href="#size-number_1" class="md-nav__link">
794 size: number
795 </a>
796
797 </li>
798
799 </ul>
800 </nav>
801
802 </li>
803
804 <li class="md-nav__item">
805 <a href="#objectmap" class="md-nav__link">
806 ObjectMap
807 </a>
808
809 <nav class="md-nav" aria-label="ObjectMap">
810 <ul class="md-nav__list">
811
812 <li class="md-nav__item">
813 <a href="#setkey-object-value-object" class="md-nav__link">
814 set(key: Object, value: Object)
815 </a>
816
817 </li>
818
819 <li class="md-nav__item">
820 <a href="#deletekey-object" class="md-nav__link">
821 delete(key: Object)
822 </a>
823
824 </li>
825
826 <li class="md-nav__item">
827 <a href="#haskey-object-boolean" class="md-nav__link">
828 has(key: Object): boolean
829 </a>
830
831 </li>
832
833 <li class="md-nav__item">
834 <a href="#getkey-object-object-undefined" class="md-nav__link">
835 get(key: Object): Object | undefined
836 </a>
837
838 </li>
839
840 </ul>
841 </nav>
842
843 </li>
844
845 </ul>
846
847 </nav>
848
849 </li>
850
851
852
853
854
855
856
857 <li class="md-nav__item">
858 <a href="../new-api_core/" class="md-nav__link">
859 Core Functions
860 </a>
861 </li>
862
863
864
865
866
867
868
869 <li class="md-nav__item">
870 <a href="../new-api_dom/" class="md-nav__link">
871 DOM
872 </a>
873 </li>
874
875
876
877
878
879
880
881 <li class="md-nav__item">
882 <a href="../new-api_events/" class="md-nav__link">
883 Event Handling
884 </a>
885 </li>
886
887
888
889
890
891
892
893 <li class="md-nav__item">
894 <a href="../new-api_ajax/" class="md-nav__link">
895 Ajax
896 </a>
897 </li>
898
899
900
901
902
903
904
905 <li class="md-nav__item">
906 <a href="../new-api_dialogs/" class="md-nav__link">
907 Dialogs
908 </a>
909 </li>
910
911
912
913
914
915
916
917 <li class="md-nav__item">
918 <a href="../new-api_browser/" class="md-nav__link">
919 Browser and Screen Sizes
920 </a>
921 </li>
922
923
924
925
926
927
928
929 <li class="md-nav__item">
930 <a href="../new-api_ui/" class="md-nav__link">
931 User Interface
932 </a>
933 </li>
934
935
936
937 </ul>
938 </nav>
939 </li>
940
941
942
943
944
945
946
947 <li class="md-nav__item">
948 <a href="../legacy-api/" class="md-nav__link">
949 Legacy API
950 </a>
951 </li>
952
953
954
955
956
957
958
959 <li class="md-nav__item">
960 <a href="../helper-functions/" class="md-nav__link">
961 Helper Functions
962 </a>
963 </li>
964
965
966
967
968
969
970
971 <li class="md-nav__item">
972 <a href="../code-snippets/" class="md-nav__link">
973 Code Snippets
974 </a>
975 </li>
976
977
978
979 </ul>
980 </nav>
981 </li>
982
983
984
985
986
987
988
989
990
991
992
993 <li class="md-nav__item md-nav__item--nested">
994
995
996 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
997
998 <label class="md-nav__link" for="__nav_5">
999 Package Components
1000 <span class="md-nav__icon md-icon"></span>
1001 </label>
1002 <nav class="md-nav" aria-label="Package Components" data-md-level="1">
1003 <label class="md-nav__title" for="__nav_5">
1004 <span class="md-nav__icon md-icon"></span>
1005 Package Components
1006 </label>
1007 <ul class="md-nav__list" data-md-scrollfix>
1008
1009
1010
1011
1012
1013 <li class="md-nav__item">
1014 <a href="../../package/package-xml/" class="md-nav__link">
1015 package.xml
1016 </a>
1017 </li>
1018
1019
1020
1021
1022
1023
1024
1025
1026 <li class="md-nav__item md-nav__item--nested">
1027
1028
1029 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
1030
1031 <label class="md-nav__link" for="__nav_5_2">
1032 PIPs
1033 <span class="md-nav__icon md-icon"></span>
1034 </label>
1035 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
1036 <label class="md-nav__title" for="__nav_5_2">
1037 <span class="md-nav__icon md-icon"></span>
1038 PIPs
1039 </label>
1040 <ul class="md-nav__list" data-md-scrollfix>
1041
1042
1043
1044
1045
1046 <li class="md-nav__item">
1047 <a href="../../package/pip/" class="md-nav__link">
1048 Overview
1049 </a>
1050 </li>
1051
1052
1053
1054
1055
1056
1057
1058 <li class="md-nav__item">
1059 <a href="../../package/pip/acl-option/" class="md-nav__link">
1060 aclOption
1061 </a>
1062 </li>
1063
1064
1065
1066
1067
1068
1069
1070 <li class="md-nav__item">
1071 <a href="../../package/pip/acp-menu/" class="md-nav__link">
1072 acpMenu
1073 </a>
1074 </li>
1075
1076
1077
1078
1079
1080
1081
1082 <li class="md-nav__item">
1083 <a href="../../package/pip/acp-search-provider/" class="md-nav__link">
1084 acpSearchProvider
1085 </a>
1086 </li>
1087
1088
1089
1090
1091
1092
1093
1094 <li class="md-nav__item">
1095 <a href="../../package/pip/acp-template/" class="md-nav__link">
1096 acpTemplate
1097 </a>
1098 </li>
1099
1100
1101
1102
1103
1104
1105
1106 <li class="md-nav__item">
1107 <a href="../../package/pip/bbcode/" class="md-nav__link">
1108 bbcode
1109 </a>
1110 </li>
1111
1112
1113
1114
1115
1116
1117
1118 <li class="md-nav__item">
1119 <a href="../../package/pip/box/" class="md-nav__link">
1120 box
1121 </a>
1122 </li>
1123
1124
1125
1126
1127
1128
1129
1130 <li class="md-nav__item">
1131 <a href="../../package/pip/clipboard-action/" class="md-nav__link">
1132 clipboardAction
1133 </a>
1134 </li>
1135
1136
1137
1138
1139
1140
1141
1142 <li class="md-nav__item">
1143 <a href="../../package/pip/core-object/" class="md-nav__link">
1144 coreObject
1145 </a>
1146 </li>
1147
1148
1149
1150
1151
1152
1153
1154 <li class="md-nav__item">
1155 <a href="../../package/pip/cronjob/" class="md-nav__link">
1156 cronjob
1157 </a>
1158 </li>
1159
1160
1161
1162
1163
1164
1165
1166 <li class="md-nav__item">
1167 <a href="../../package/pip/event-listener/" class="md-nav__link">
1168 eventListener
1169 </a>
1170 </li>
1171
1172
1173
1174
1175
1176
1177
1178 <li class="md-nav__item">
1179 <a href="../../package/pip/file/" class="md-nav__link">
1180 file
1181 </a>
1182 </li>
1183
1184
1185
1186
1187
1188
1189
1190 <li class="md-nav__item">
1191 <a href="../../package/pip/language/" class="md-nav__link">
1192 language
1193 </a>
1194 </li>
1195
1196
1197
1198
1199
1200
1201
1202 <li class="md-nav__item">
1203 <a href="../../package/pip/media-provider/" class="md-nav__link">
1204 mediaProvider
1205 </a>
1206 </li>
1207
1208
1209
1210
1211
1212
1213
1214 <li class="md-nav__item">
1215 <a href="../../package/pip/menu/" class="md-nav__link">
1216 menu
1217 </a>
1218 </li>
1219
1220
1221
1222
1223
1224
1225
1226 <li class="md-nav__item">
1227 <a href="../../package/pip/menu-item/" class="md-nav__link">
1228 menuItem
1229 </a>
1230 </li>
1231
1232
1233
1234
1235
1236
1237
1238 <li class="md-nav__item">
1239 <a href="../../package/pip/object-type/" class="md-nav__link">
1240 objectType
1241 </a>
1242 </li>
1243
1244
1245
1246
1247
1248
1249
1250 <li class="md-nav__item">
1251 <a href="../../package/pip/object-type-definition/" class="md-nav__link">
1252 objectTypeDefinition
1253 </a>
1254 </li>
1255
1256
1257
1258
1259
1260
1261
1262 <li class="md-nav__item">
1263 <a href="../../package/pip/option/" class="md-nav__link">
1264 option
1265 </a>
1266 </li>
1267
1268
1269
1270
1271
1272
1273
1274 <li class="md-nav__item">
1275 <a href="../../package/pip/page/" class="md-nav__link">
1276 page
1277 </a>
1278 </li>
1279
1280
1281
1282
1283
1284
1285
1286 <li class="md-nav__item">
1287 <a href="../../package/pip/pip/" class="md-nav__link">
1288 pip
1289 </a>
1290 </li>
1291
1292
1293
1294
1295
1296
1297
1298 <li class="md-nav__item">
1299 <a href="../../package/pip/script/" class="md-nav__link">
1300 script
1301 </a>
1302 </li>
1303
1304
1305
1306
1307
1308
1309
1310 <li class="md-nav__item">
1311 <a href="../../package/pip/smiley/" class="md-nav__link">
1312 smiley
1313 </a>
1314 </li>
1315
1316
1317
1318
1319
1320
1321
1322 <li class="md-nav__item">
1323 <a href="../../package/pip/sql/" class="md-nav__link">
1324 sql
1325 </a>
1326 </li>
1327
1328
1329
1330
1331
1332
1333
1334 <li class="md-nav__item">
1335 <a href="../../package/pip/style/" class="md-nav__link">
1336 style
1337 </a>
1338 </li>
1339
1340
1341
1342
1343
1344
1345
1346 <li class="md-nav__item">
1347 <a href="../../package/pip/template/" class="md-nav__link">
1348 template
1349 </a>
1350 </li>
1351
1352
1353
1354
1355
1356
1357
1358 <li class="md-nav__item">
1359 <a href="../../package/pip/template-listener/" class="md-nav__link">
1360 templateListener
1361 </a>
1362 </li>
1363
1364
1365
1366
1367
1368
1369
1370 <li class="md-nav__item">
1371 <a href="../../package/pip/user-group-option/" class="md-nav__link">
1372 userGroupOption
1373 </a>
1374 </li>
1375
1376
1377
1378
1379
1380
1381
1382 <li class="md-nav__item">
1383 <a href="../../package/pip/user-menu/" class="md-nav__link">
1384 userMenu
1385 </a>
1386 </li>
1387
1388
1389
1390
1391
1392
1393
1394 <li class="md-nav__item">
1395 <a href="../../package/pip/user-notification-event/" class="md-nav__link">
1396 userNotificationEvent
1397 </a>
1398 </li>
1399
1400
1401
1402
1403
1404
1405
1406 <li class="md-nav__item">
1407 <a href="../../package/pip/user-option/" class="md-nav__link">
1408 userOption
1409 </a>
1410 </li>
1411
1412
1413
1414
1415
1416
1417
1418 <li class="md-nav__item">
1419 <a href="../../package/pip/user-profile-menu/" class="md-nav__link">
1420 userProfileMenu
1421 </a>
1422 </li>
1423
1424
1425
1426 </ul>
1427 </nav>
1428 </li>
1429
1430
1431
1432
1433
1434
1435
1436 <li class="md-nav__item">
1437 <a href="../../package/database-php-api/" class="md-nav__link">
1438 Database PHP API
1439 </a>
1440 </li>
1441
1442
1443
1444 </ul>
1445 </nav>
1446 </li>
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458 <li class="md-nav__item md-nav__item--nested">
1459
1460
1461 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1462
1463 <label class="md-nav__link" for="__nav_6">
1464 Migration
1465 <span class="md-nav__icon md-icon"></span>
1466 </label>
1467 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1468 <label class="md-nav__title" for="__nav_6">
1469 <span class="md-nav__icon md-icon"></span>
1470 Migration
1471 </label>
1472 <ul class="md-nav__list" data-md-scrollfix>
1473
1474
1475
1476
1477
1478
1479 <li class="md-nav__item md-nav__item--nested">
1480
1481
1482 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1483
1484 <label class="md-nav__link" for="__nav_6_1">
1485 Migrating from WSC 5.3
1486 <span class="md-nav__icon md-icon"></span>
1487 </label>
1488 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1489 <label class="md-nav__title" for="__nav_6_1">
1490 <span class="md-nav__icon md-icon"></span>
1491 Migrating from WSC 5.3
1492 </label>
1493 <ul class="md-nav__list" data-md-scrollfix>
1494
1495
1496
1497
1498
1499 <li class="md-nav__item">
1500 <a href="../../migration/wsc53/php/" class="md-nav__link">
1501 PHP API
1502 </a>
1503 </li>
1504
1505
1506
1507
1508
1509
1510
1511 <li class="md-nav__item">
1512 <a href="../../migration/wsc53/session/" class="md-nav__link">
1513 Session Handling and Authentication
1514 </a>
1515 </li>
1516
1517
1518
1519
1520
1521
1522
1523 <li class="md-nav__item">
1524 <a href="../../migration/wsc53/javascript/" class="md-nav__link">
1525 JavaScript
1526 </a>
1527 </li>
1528
1529
1530
1531
1532
1533
1534
1535 <li class="md-nav__item">
1536 <a href="../../migration/wsc53/templates/" class="md-nav__link">
1537 Templates
1538 </a>
1539 </li>
1540
1541
1542
1543
1544
1545
1546
1547 <li class="md-nav__item">
1548 <a href="../../migration/wsc53/libraries/" class="md-nav__link">
1549 Third Party Libraries
1550 </a>
1551 </li>
1552
1553
1554
1555 </ul>
1556 </nav>
1557 </li>
1558
1559
1560
1561
1562
1563
1564
1565
1566 <li class="md-nav__item md-nav__item--nested">
1567
1568
1569 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1570
1571 <label class="md-nav__link" for="__nav_6_2">
1572 Migrating from WSC 5.2
1573 <span class="md-nav__icon md-icon"></span>
1574 </label>
1575 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1576 <label class="md-nav__title" for="__nav_6_2">
1577 <span class="md-nav__icon md-icon"></span>
1578 Migrating from WSC 5.2
1579 </label>
1580 <ul class="md-nav__list" data-md-scrollfix>
1581
1582
1583
1584
1585
1586 <li class="md-nav__item">
1587 <a href="../../migration/wsc52/php/" class="md-nav__link">
1588 PHP API
1589 </a>
1590 </li>
1591
1592
1593
1594
1595
1596
1597
1598 <li class="md-nav__item">
1599 <a href="../../migration/wsc52/templates/" class="md-nav__link">
1600 Templates and Languages
1601 </a>
1602 </li>
1603
1604
1605
1606
1607
1608
1609
1610 <li class="md-nav__item">
1611 <a href="../../migration/wsc52/libraries/" class="md-nav__link">
1612 Third Party Libraries
1613 </a>
1614 </li>
1615
1616
1617
1618 </ul>
1619 </nav>
1620 </li>
1621
1622
1623
1624
1625
1626
1627
1628
1629 <li class="md-nav__item md-nav__item--nested">
1630
1631
1632 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1633
1634 <label class="md-nav__link" for="__nav_6_3">
1635 Migrating from WSC 3.1
1636 <span class="md-nav__icon md-icon"></span>
1637 </label>
1638 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1639 <label class="md-nav__title" for="__nav_6_3">
1640 <span class="md-nav__icon md-icon"></span>
1641 Migrating from WSC 3.1
1642 </label>
1643 <ul class="md-nav__list" data-md-scrollfix>
1644
1645
1646
1647
1648
1649 <li class="md-nav__item">
1650 <a href="../../migration/wsc31/php/" class="md-nav__link">
1651 PHP API
1652 </a>
1653 </li>
1654
1655
1656
1657 </ul>
1658 </nav>
1659 </li>
1660
1661
1662
1663
1664
1665
1666
1667
1668 <li class="md-nav__item md-nav__item--nested">
1669
1670
1671 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1672
1673 <label class="md-nav__link" for="__nav_6_4">
1674 Migrating from WSC 3.0
1675 <span class="md-nav__icon md-icon"></span>
1676 </label>
1677 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1678 <label class="md-nav__title" for="__nav_6_4">
1679 <span class="md-nav__icon md-icon"></span>
1680 Migrating from WSC 3.0
1681 </label>
1682 <ul class="md-nav__list" data-md-scrollfix>
1683
1684
1685
1686
1687
1688 <li class="md-nav__item">
1689 <a href="../../migration/wsc30/php/" class="md-nav__link">
1690 PHP API
1691 </a>
1692 </li>
1693
1694
1695
1696
1697
1698
1699
1700 <li class="md-nav__item">
1701 <a href="../../migration/wsc30/javascript/" class="md-nav__link">
1702 JavaScript API
1703 </a>
1704 </li>
1705
1706
1707
1708
1709
1710
1711
1712 <li class="md-nav__item">
1713 <a href="../../migration/wsc30/templates/" class="md-nav__link">
1714 Templates
1715 </a>
1716 </li>
1717
1718
1719
1720
1721
1722
1723
1724 <li class="md-nav__item">
1725 <a href="../../migration/wsc30/css/" class="md-nav__link">
1726 CSS
1727 </a>
1728 </li>
1729
1730
1731
1732
1733
1734
1735
1736 <li class="md-nav__item">
1737 <a href="../../migration/wsc30/package/" class="md-nav__link">
1738 Package Components
1739 </a>
1740 </li>
1741
1742
1743
1744 </ul>
1745 </nav>
1746 </li>
1747
1748
1749
1750
1751
1752
1753
1754
1755 <li class="md-nav__item md-nav__item--nested">
1756
1757
1758 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1759
1760 <label class="md-nav__link" for="__nav_6_5">
1761 Migrating from WCF 2.1
1762 <span class="md-nav__icon md-icon"></span>
1763 </label>
1764 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1765 <label class="md-nav__title" for="__nav_6_5">
1766 <span class="md-nav__icon md-icon"></span>
1767 Migrating from WCF 2.1
1768 </label>
1769 <ul class="md-nav__list" data-md-scrollfix>
1770
1771
1772
1773
1774
1775 <li class="md-nav__item">
1776 <a href="../../migration/wcf21/php/" class="md-nav__link">
1777 PHP API
1778 </a>
1779 </li>
1780
1781
1782
1783
1784
1785
1786
1787 <li class="md-nav__item">
1788 <a href="../../migration/wcf21/templates/" class="md-nav__link">
1789 Templates
1790 </a>
1791 </li>
1792
1793
1794
1795
1796
1797
1798
1799 <li class="md-nav__item">
1800 <a href="../../migration/wcf21/css/" class="md-nav__link">
1801 CSS
1802 </a>
1803 </li>
1804
1805
1806
1807
1808
1809
1810
1811 <li class="md-nav__item">
1812 <a href="../../migration/wcf21/package/" class="md-nav__link">
1813 Package Components
1814 </a>
1815 </li>
1816
1817
1818
1819 </ul>
1820 </nav>
1821 </li>
1822
1823
1824
1825 </ul>
1826 </nav>
1827 </li>
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839 <li class="md-nav__item md-nav__item--nested">
1840
1841
1842 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1843
1844 <label class="md-nav__link" for="__nav_7">
1845 Tutorials
1846 <span class="md-nav__icon md-icon"></span>
1847 </label>
1848 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1849 <label class="md-nav__title" for="__nav_7">
1850 <span class="md-nav__icon md-icon"></span>
1851 Tutorials
1852 </label>
1853 <ul class="md-nav__list" data-md-scrollfix>
1854
1855
1856
1857
1858
1859
1860 <li class="md-nav__item md-nav__item--nested">
1861
1862
1863 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1864
1865 <label class="md-nav__link" for="__nav_7_1">
1866 Tutorial Series
1867 <span class="md-nav__icon md-icon"></span>
1868 </label>
1869 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1870 <label class="md-nav__title" for="__nav_7_1">
1871 <span class="md-nav__icon md-icon"></span>
1872 Tutorial Series
1873 </label>
1874 <ul class="md-nav__list" data-md-scrollfix>
1875
1876
1877
1878
1879
1880 <li class="md-nav__item">
1881 <a href="../../tutorial/series/overview/" class="md-nav__link">
1882 Overview
1883 </a>
1884 </li>
1885
1886
1887
1888
1889
1890
1891
1892 <li class="md-nav__item">
1893 <a href="../../tutorial/series/part_1/" class="md-nav__link">
1894 Part 1
1895 </a>
1896 </li>
1897
1898
1899
1900
1901
1902
1903
1904 <li class="md-nav__item">
1905 <a href="../../tutorial/series/part_2/" class="md-nav__link">
1906 Part 2
1907 </a>
1908 </li>
1909
1910
1911
1912
1913
1914
1915
1916 <li class="md-nav__item">
1917 <a href="../../tutorial/series/part_3/" class="md-nav__link">
1918 Part 3
1919 </a>
1920 </li>
1921
1922
1923
1924 </ul>
1925 </nav>
1926 </li>
1927
1928
1929
1930 </ul>
1931 </nav>
1932 </li>
1933
1934
1935
1936 </ul>
1937 </nav>
1938 </div>
1939 </div>
1940 </div>
1941
1942
1943
1944 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1945 <div class="md-sidebar__scrollwrap">
1946 <div class="md-sidebar__inner">
1947
1948 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1949
1950
1951
1952
1953
1954 <label class="md-nav__title" for="__toc">
1955 <span class="md-nav__icon md-icon"></span>
1956 Table of contents
1957 </label>
1958 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1959
1960 <li class="md-nav__item">
1961 <a href="#introduction" class="md-nav__link">
1962 Introduction
1963 </a>
1964
1965 </li>
1966
1967 <li class="md-nav__item">
1968 <a href="#dictionary" class="md-nav__link">
1969 Dictionary
1970 </a>
1971
1972 <nav class="md-nav" aria-label="Dictionary">
1973 <ul class="md-nav__list">
1974
1975 <li class="md-nav__item">
1976 <a href="#setkey-string-value-any" class="md-nav__link">
1977 set(key: string, value: any)
1978 </a>
1979
1980 </li>
1981
1982 <li class="md-nav__item">
1983 <a href="#deletekey-string" class="md-nav__link">
1984 delete(key: string)
1985 </a>
1986
1987 </li>
1988
1989 <li class="md-nav__item">
1990 <a href="#haskey-string-boolean" class="md-nav__link">
1991 has(key: string): boolean
1992 </a>
1993
1994 </li>
1995
1996 <li class="md-nav__item">
1997 <a href="#getkey-string-any" class="md-nav__link">
1998 get(key: string): any
1999 </a>
2000
2001 </li>
2002
2003 <li class="md-nav__item">
2004 <a href="#foreachcallback-value-any-key-string-void" class="md-nav__link">
2005 forEach(callback: (value: any, key: string) =&gt; void)
2006 </a>
2007
2008 </li>
2009
2010 <li class="md-nav__item">
2011 <a href="#size-number" class="md-nav__link">
2012 size: number
2013 </a>
2014
2015 </li>
2016
2017 </ul>
2018 </nav>
2019
2020 </li>
2021
2022 <li class="md-nav__item">
2023 <a href="#list" class="md-nav__link">
2024 List
2025 </a>
2026
2027 <nav class="md-nav" aria-label="List">
2028 <ul class="md-nav__list">
2029
2030 <li class="md-nav__item">
2031 <a href="#addvalue-any" class="md-nav__link">
2032 add(value: any)
2033 </a>
2034
2035 </li>
2036
2037 <li class="md-nav__item">
2038 <a href="#clear" class="md-nav__link">
2039 clear()
2040 </a>
2041
2042 </li>
2043
2044 <li class="md-nav__item">
2045 <a href="#deletevalue-any-boolean" class="md-nav__link">
2046 delete(value: any): boolean
2047 </a>
2048
2049 </li>
2050
2051 <li class="md-nav__item">
2052 <a href="#foreachcallback-value-any-void" class="md-nav__link">
2053 forEach(callback: (value: any) =&gt; void)
2054 </a>
2055
2056 </li>
2057
2058 <li class="md-nav__item">
2059 <a href="#hasvalue-any-boolean" class="md-nav__link">
2060 has(value: any): boolean
2061 </a>
2062
2063 </li>
2064
2065 <li class="md-nav__item">
2066 <a href="#size-number_1" class="md-nav__link">
2067 size: number
2068 </a>
2069
2070 </li>
2071
2072 </ul>
2073 </nav>
2074
2075 </li>
2076
2077 <li class="md-nav__item">
2078 <a href="#objectmap" class="md-nav__link">
2079 ObjectMap
2080 </a>
2081
2082 <nav class="md-nav" aria-label="ObjectMap">
2083 <ul class="md-nav__list">
2084
2085 <li class="md-nav__item">
2086 <a href="#setkey-object-value-object" class="md-nav__link">
2087 set(key: Object, value: Object)
2088 </a>
2089
2090 </li>
2091
2092 <li class="md-nav__item">
2093 <a href="#deletekey-object" class="md-nav__link">
2094 delete(key: Object)
2095 </a>
2096
2097 </li>
2098
2099 <li class="md-nav__item">
2100 <a href="#haskey-object-boolean" class="md-nav__link">
2101 has(key: Object): boolean
2102 </a>
2103
2104 </li>
2105
2106 <li class="md-nav__item">
2107 <a href="#getkey-object-object-undefined" class="md-nav__link">
2108 get(key: Object): Object | undefined
2109 </a>
2110
2111 </li>
2112
2113 </ul>
2114 </nav>
2115
2116 </li>
2117
2118 </ul>
2119
2120 </nav>
2121 </div>
2122 </div>
2123 </div>
2124
2125
2126 <div class="md-content" data-md-component="content">
2127 <article class="md-content__inner md-typeset">
2128
2129
2130
2131 <h1 id="data-structures-javascript-api">Data Structures - JavaScript API<a class="headerlink" href="#data-structures-javascript-api" title="Permanent link">#</a></h1>
2132 <h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">#</a></h2>
2133 <p>JavaScript offers only limited types of collections to hold and iterate over
2134 data. Despite the ongoing efforts in ES6 and newer, these new data structures
2135 and access methods, such as <code>for … of</code>, are not available in the still supported
2136 Internet Explorer 11.</p>
2137 <h2 id="dictionary"><code>Dictionary</code><a class="headerlink" href="#dictionary" title="Permanent link">#</a></h2>
2138 <p>Represents a simple key-value map, but unlike the use of plain objects, will
2139 always to guarantee to iterate over directly set values only.</p>
2140 <p><em>In supported browsers this will use a native <code>Map</code> internally, otherwise a plain object.</em></p>
2141 <h3 id="setkey-string-value-any"><code>set(key: string, value: any)</code><a class="headerlink" href="#setkey-string-value-any" title="Permanent link">#</a></h3>
2142 <p>Adds or updates an item using the provided key. Numeric keys will be converted
2143 into strings.</p>
2144 <h3 id="deletekey-string"><code>delete(key: string)</code><a class="headerlink" href="#deletekey-string" title="Permanent link">#</a></h3>
2145 <p>Removes an item from the collection.</p>
2146 <h3 id="haskey-string-boolean"><code>has(key: string): boolean</code><a class="headerlink" href="#haskey-string-boolean" title="Permanent link">#</a></h3>
2147 <p>Returns true if the key is contained in the collection.</p>
2148 <h3 id="getkey-string-any"><code>get(key: string): any</code><a class="headerlink" href="#getkey-string-any" title="Permanent link">#</a></h3>
2149 <p>Returns the value for the provided key, or <code>undefined</code> if the key was not found.
2150 Use <code>.has()</code> to check for key existence.</p>
2151 <h3 id="foreachcallback-value-any-key-string-void"><code>forEach(callback: (value: any, key: string) =&gt; void)</code><a class="headerlink" href="#foreachcallback-value-any-key-string-void" title="Permanent link">#</a></h3>
2152 <p>Iterates over all items in the collection in an arbitrary order and invokes the
2153 supplied callback with the value and the key.</p>
2154 <h3 id="size-number"><code>size: number</code><a class="headerlink" href="#size-number" title="Permanent link">#</a></h3>
2155 <p>This read-only property counts the number of items in the collection.</p>
2156 <h2 id="list"><code>List</code><a class="headerlink" href="#list" title="Permanent link">#</a></h2>
2157 <p>Represents a list of unique values.</p>
2158 <p><em>In supported browsers this will use a native <code>Set</code> internally, otherwise an array.</em></p>
2159 <h3 id="addvalue-any"><code>add(value: any)</code><a class="headerlink" href="#addvalue-any" title="Permanent link">#</a></h3>
2160 <p>Adds a value to the list. If the value is already part of the list, this method
2161 will silently abort.</p>
2162 <h3 id="clear"><code>clear()</code><a class="headerlink" href="#clear" title="Permanent link">#</a></h3>
2163 <p>Resets the collection.</p>
2164 <h3 id="deletevalue-any-boolean"><code>delete(value: any): boolean</code><a class="headerlink" href="#deletevalue-any-boolean" title="Permanent link">#</a></h3>
2165 <p>Attempts to remove a value from the list, it returns true if the value has been
2166 part of the list.</p>
2167 <h3 id="foreachcallback-value-any-void"><code>forEach(callback: (value: any) =&gt; void)</code><a class="headerlink" href="#foreachcallback-value-any-void" title="Permanent link">#</a></h3>
2168 <p>Iterates over all values in the list in an arbitrary order and invokes the
2169 supplied callback for each value.</p>
2170 <h3 id="hasvalue-any-boolean"><code>has(value: any): boolean</code><a class="headerlink" href="#hasvalue-any-boolean" title="Permanent link">#</a></h3>
2171 <p>Returns true if the provided value is part of this list.</p>
2172 <h3 id="size-number_1"><code>size: number</code><a class="headerlink" href="#size-number_1" title="Permanent link">#</a></h3>
2173 <p>This read-only property counts the number of items in the list.</p>
2174 <h2 id="objectmap"><code>ObjectMap</code><a class="headerlink" href="#objectmap" title="Permanent link">#</a></h2>
2175 <div class="admonition info">
2176 <p class="admonition-title">This class uses a <code>WeakMap</code> internally, the keys are only weakly referenced and do not prevent garbage collection.</p>
2177 </div>
2178 <p>Represents a collection where any kind of objects, such as class instances or
2179 DOM elements, can be used as key. These keys are weakly referenced and will not
2180 prevent garbage collection from happening, but this also means that it is not
2181 possible to enumerate or iterate over the stored keys and values.</p>
2182 <p>This class is especially useful when you want to store additional data for
2183 objects that may get disposed on runtime, such as DOM elements. Using any regular
2184 data collections will cause the object to be referenced indefinitely, preventing
2185 the garbage collection from removing orphaned objects.</p>
2186 <h3 id="setkey-object-value-object"><code>set(key: Object, value: Object)</code><a class="headerlink" href="#setkey-object-value-object" title="Permanent link">#</a></h3>
2187 <p>Adds the key with the provided value to the map, if the key was already part
2188 of the collection, its value is overwritten.</p>
2189 <h3 id="deletekey-object"><code>delete(key: Object)</code><a class="headerlink" href="#deletekey-object" title="Permanent link">#</a></h3>
2190 <p>Attempts to remove a key from the collection. The method will abort silently if
2191 the key is not part of the collection.</p>
2192 <h3 id="haskey-object-boolean"><code>has(key: Object): boolean</code><a class="headerlink" href="#haskey-object-boolean" title="Permanent link">#</a></h3>
2193 <p>Returns true if there is a value for the provided key in this collection.</p>
2194 <h3 id="getkey-object-object-undefined"><code>get(key: Object): Object | undefined</code><a class="headerlink" href="#getkey-object-object-undefined" title="Permanent link">#</a></h3>
2195 <p>Retrieves the value of the provided key, or <code>undefined</code> if the key was not found.</p>
2196
2197
2198
2199
2200
2201
2202
2203 </article>
2204 </div>
2205 </div>
2206 </main>
2207
2208
2209 <footer class="md-footer">
2210
2211 <nav class="md-footer__inner md-grid" aria-label="Footer">
2212
2213 <a href="../new-api_writing-a-module/" class="md-footer__link md-footer__link--prev" rel="prev">
2214 <div class="md-footer__button md-icon">
2215 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
2216 </div>
2217 <div class="md-footer__title">
2218 <div class="md-ellipsis">
2219 <span class="md-footer__direction">
2220 Previous
2221 </span>
2222 Writing a module
2223 </div>
2224 </div>
2225 </a>
2226
2227
2228 <a href="../new-api_core/" class="md-footer__link md-footer__link--next" rel="next">
2229 <div class="md-footer__title">
2230 <div class="md-ellipsis">
2231 <span class="md-footer__direction">
2232 Next
2233 </span>
2234 Core Functions
2235 </div>
2236 </div>
2237 <div class="md-footer__button md-icon">
2238 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
2239 </div>
2240 </a>
2241
2242 </nav>
2243
2244 <div class="md-footer-meta md-typeset">
2245 <div class="md-footer-meta__inner md-grid">
2246 <div class="md-footer-copyright">
2247
2248 <div class="md-footer-copyright__highlight">
2249 Copyright © 2020 WoltLab GmbH
2250 </div>
2251
2252 Made with
2253 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2254 Material for MkDocs
2255 </a>
2256 </div>
2257 <div class="md-footer-copyright">
2258 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2259 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2260 </div>
2261 </div>
2262 </div>
2263 </footer>
2264
2265 </div>
2266 <div class="md-dialog" data-md-component="dialog">
2267 <div class="md-dialog__inner md-typeset"></div>
2268 </div>
2269 <script id="__config" type="application/json">{"base": "../..", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../../assets/javascripts/workers/search.fb4a9340.min.js", "version": {"provider": "mike"}}</script>
2270
2271
2272 <script src="../../assets/javascripts/bundle.ca5457b8.min.js"></script>
2273
2274
2275 </body>
2276 </html>