From cb9e359a51c3249d8f5157db69d43fd413ddeda6 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:45:12 +0100 Subject: unslug ca: move --- .../reference/global_objects/set/index.html | 380 +++++++++++++++++++++ 1 file changed, 380 insertions(+) create mode 100644 files/ca/web/javascript/reference/global_objects/set/index.html (limited to 'files/ca/web/javascript/reference/global_objects/set/index.html') diff --git a/files/ca/web/javascript/reference/global_objects/set/index.html b/files/ca/web/javascript/reference/global_objects/set/index.html new file mode 100644 index 0000000000..993d296324 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/set/index.html @@ -0,0 +1,380 @@ +--- +title: Set +slug: Web/JavaScript/Referencia/Objectes_globals/Set +translation_of: Web/JavaScript/Reference/Global_Objects/Set +--- +
{{JSRef}}
+ +

L'objecte Set permet emmagatzemar valors únics de qualsevol tipus, ja siguin {{Glossary("Primitive", "valors primitius")}} o bé referències a objectes.

+ +

Sintaxi

+ +
new Set([iterable]);
+ +

Paràmetres

+ +
+
iterable
+
Si rep un objecte iterable, tots els seus elements seran afegits al nou Set. null serà tractat com a undefined.
+
+ +

Descripció

+ +

Els objectes Set són coleccions de valors, els seus elements poden ser iterats en ordre d'inserció. Un valor només pot aparèixer un cop dins el Set; és únic dins la col·lecció del Set.

+ +

Igualtat de valors

+ +

Degut a que cada valor dins el Set ha de ser únic, la igualtat dels valors serà comprovada i aquesta no es basa en el mateix algoritme que l'emprat per l'operador ===. Concreatement, per a Sets, +0 (que és estrictament igual a -0) i -0 són valors diferents. Tot i així, aquest comportament s'ha canviat a la última especificació de l'ECMAScript 6. A partir de Gecko 29.0 {{geckoRelease("29")}} ({{bug("952870")}}) i una recent versió nightly del Chrome, +0 i -0 són tractats com al mateix valor en objectes Set. Així mateix, NaN i undefined també poden ser emmagatzemats dins un Set. NaN és considerat igual a NaN (tot i que NaN !== NaN).

+ +

Propietats

+ +
+
Set.length
+
El valor de la propietat length és 0.
+
{{jsxref("Set.@@species", "get Set[@@species]")}}
+
La funció constructora que s'ha utilitzat per a crear objectes derivats.
+
{{jsxref("Set.prototype")}}
+
Representa el prototipus per al constructor Set. Permet afegir propietats a tots els objectes Set.
+
+ +

Instàncies de Set

+ +

Totes les instàncies de Set hereten de {{jsxref("Set.prototype")}}.

+ +

Propietats

+ +

{{page('ca/Web/JavaScript/Reference/Global_Objects/Set/prototype','Propietats')}}

+ +

Mètodes

+ +

{{page('ca/Web/JavaScript/Reference/Global_Objects/Set/prototype','Mètodes')}}

+ +

Exemples

+ +

Utilitzar l'objecte Set

+ +
var mySet = new Set();
+
+mySet.add(1);
+mySet.add(5);
+mySet.add("algun text");
+
+mySet.has(1); // true
+mySet.has(3); // false, 3 no ha estat afegit al set
+mySet.has(5);              // true
+mySet.has(Math.sqrt(25));  // true
+mySet.has("Some Text".toLowerCase()); // true
+
+mySet.size; // 3
+
+mySet.delete(5); // esborra 5 del set
+mySet.has(5);    // false, 5 ha sigut esborrat
+
+mySet.size; // 2, acabem d'esborrar un valor
+
+ +

Iterarar Sets

+ +
// iterar els elements d'un set
+// imprimeix els elements en l'ordre: 1, "algun text"
+for (let item of mySet) console.log(item);
+
+// imprimeix els elements en l'ordre: 1, "algun text"
+for (let item of mySet.keys()) console.log(item);
+
+// imprimeix els elements en l'ordre: 1, "algun text"
+for (let item of mySet.values()) console.log(item);
+
+// imprimeix els elements en l'ordre: 1, "algun text"
+//(key i value són iguals en aquest exemple)
+for (let [key, value] of mySet.entries()) console.log(key);
+
+// converteix el set en un Array (mitjançant Array comprehensions)
+var myArr = [v for (v of mySet)]; // [1, "algun text"]
+// Alternativa (mitjançant Array.from)
+var myArr = Array.from(mySet); // [1, "algun text"]
+
+// el codi següent també funcionarà si s'executa dins un document HTML
+mySet.add(document.body);
+mySet.has(document.querySelector("body")); // true
+
+// conversió entre Set i Array
+mySet2 = new Set([1,2,3,4]);
+mySet2.size; // 4
+[...mySet2]; // [1,2,3,4]
+
+// la intersecció es pot simular via
+var intersection = new Set([x for (x of set1) if (set2.has(x))]);
+
+// Iteració de les entrades del set mitjançant un forEach
+mySet.forEach(function(value) {
+  console.log(value);
+});
+
+// 1
+// 2
+// 3
+// 4
+ +

Relació amb objectes Array

+ +
var myArray = ["valor1", "valor2", "valor3"];
+
+// Utilitzem el constructor normal del Set per a transformar un Array en un Set
+var mySet = new Set(myArray);
+
+mySet.has("valor1"); // retorna true
+
+// Utilitzem l'operador spread per a transformar un Set en un Array.
+console.log(uneval([...mySet])); // Mostrarà exactament el mateix Array que myArray
+ +

Especificacions

+ + + + + + + + + + + + + + +
EspecificacióEstatComentaris
{{SpecName('ES6', '#sec-set-objects', 'Set')}}{{Spec2('ES6')}}Definició inicial.
+ +

Compatibilitat amb navegadors

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CaracterísticaChromeFirefox (Gecko)Internet ExplorerOperaSafari
Suport bàsic +

{{ CompatChrome(38) }} [1]

+
{{ CompatGeckoDesktop("13") }}{{ CompatIE("11") }}257.1
Argument al constructor: new Set(iterable){{ CompatChrome(38) }}{{ CompatGeckoDesktop("13") }}{{CompatNo}}25{{CompatNo}}
iterable{{ CompatChrome(38) }}{{ CompatGeckoDesktop("17") }}{{CompatNo}}257.1
Set.clear(){{ CompatChrome(38) }}{{CompatGeckoDesktop("19")}}{{ CompatIE("11") }}257.1
Set.keys(), Set.values(), Set.entries(){{ CompatChrome(38) }}{{CompatGeckoDesktop("24")}}{{CompatNo}}257.1
Set.forEach(){{ CompatChrome(38) }}{{CompatGeckoDesktop("25")}}{{ CompatIE("11") }}257.1
Igualtat de valors per a -0 i 0{{ CompatChrome(38) }}{{CompatGeckoDesktop("29")}}{{CompatNo}}25{{CompatNo}}
Argument del constructor: new Set(null){{CompatVersionUnknown}}{{CompatGeckoDesktop("37")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Monkey-patched add() al Constructor{{CompatVersionUnknown}}{{CompatGeckoDesktop("37")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Set[@@species]{{CompatUnknown}}{{CompatGeckoDesktop("41")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Set() sense new llença excepció{{CompatUnknown}}{{CompatGeckoDesktop("42")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CaracterísticaAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Suport bàsic{{CompatNo}}{{CompatChrome(38)}} [1]{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}8
Argument al constructor: new Set(iterable){{CompatNo}}{{CompatChrome(38)}}{{ CompatGeckoMobile("13") }}{{CompatNo}}{{CompatNo}}{{CompatNo}}
iterable{{CompatNo}}{{CompatNo}}{{ CompatGeckoMobile("17") }}{{CompatNo}}{{CompatNo}}8
Set.clear(){{CompatNo}}{{ CompatChrome(38) }}{{CompatGeckoMobile("19")}}{{CompatNo}}{{CompatNo}}8
Set.keys(), Set.values(), Set.entries(){{CompatNo}}{{ CompatChrome(38) }}{{CompatGeckoMobile("24")}}{{CompatNo}}{{CompatNo}}8
Set.forEach(){{CompatNo}}{{ CompatChrome(38) }}{{CompatGeckoMobile("25")}}{{CompatNo}}{{CompatNo}}8
Igualtat de valors per a -0 i 0{{CompatNo}}{{ CompatChrome(38) }}{{CompatGeckoMobile("29")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
Argument del constructor: new Set(null){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Monkey-patched add() al Constructor{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Set[@@species]{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("41")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Set() sense new llença excepció{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("42")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

[1] La característica estava disponible sota una preferència a partir de Chorem 31. Al chrome://flags, activeu l'entrada “Activa JavaScript Experimental”.

+ +

Vegeu també

+ + -- cgit v1.2.3-54-g00ecf