Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. Objetos Globais
  5. Set

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

Set

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julho de 2015⁩.

* Some parts of this feature may have varying levels of support.

Sumário

O objetoSet permite que você armazene valoresúnicos de qualquer tipo, desdevalores primitivos a referências a objetos.

Sintaxe

 new Set([iterable]);

Parâmetros

iterable

Se umobjeto iterável é passado, todos os seus elementos serão adicionados ao novo Set. Se tal parâmetro não for específicado, ou se seu valor fornull, o novoSet estará vazio.

Descrição

ObjetosSet são coleções de valores nas quais é possível iterar os elementos em ordem de inserção. Um valor noSetpode ocorrer apenas uma vez; ele é único na coleção doSet.

Igualdade de valores

Como cada valor no Set deve ser único, a igualdade será checada e não é baseada no mesmo algoritmo que aquele usado no operador ===. Especificamente, paraSets,+0 (que é exatamente igual a - 0) e- 0 são valores diferentes. No entanto, isto foi modificado na última especificação ECMAScript 2015. Iniciado com o Gecko 29.0 (Erro do Firefox 952870) e pelorecent nightly Chrome, +0 e -0 são tratados com sendo o mesmo valor em objetos conjunto (Set). Também,NaN eundefined podem ser armazenados em um conjunto Set.

Propriedades

Set.length

O valor da propriedade comprimento é 0.

Para contar o número de elementos de umSet, useSet.prototype.size.

get Set[@@species]

A função construtora usada para criar objetos derivados.

Set.prototype

Representa o prototype do constructor doSet. Permite a adição de propriedades para todos os objetos do tipoSet.

InstânciasSet

Todas as instâncias deSet herdam deSet.prototype.

Propriedades

Métodos

Exemplos

Utilizando o objetoSet

js
var meuSet = new Set();meuSet.add(1); // meuSet [1]meuSet.add(5); // meuSet [1, 5]meuSet.add(5); // 5 já foi adicionando, portanto, meuSet [1, 5]meuSet.add("texto");var o = { a: 1, b: 2 };meuSet.add(o);meuSet.add({ a: 1, b: 2 }); //  o está referenciando outro objetomeuSet.has(1); // truemeuSet.has(3); // false, 3 não foi adicionado ao set (Conjunto)meuSet.has(5); // truemeuSet.has(Math.sqrt(25)); // truemeuSet.has("Texto".toLowerCase()); // truemeuSet.has(o); // truemeuSet.size; // 5meuSet.delete(5); // remove 5 do setmeuSet.has(5); // false, 5 já foi removidomeuSet.size; // 4, nós simplesmente removemos um valorconsole.log(meuSet); // Set { 1, 'texto', { a: 1, b: 2 }, { a: 1, b: 2 } }

Iterando objetosSet

js
// iterar sobre os itens em set// loga os itens na ordem: 1, "texto"for (let item of meuSet) console.log(item);// loga os itens na ordem: 1, "texto"for (let item of meuSet.keys()) console.log(item);// loga os itens na ordem: 1, "texto"for (let item of meuSet.values()) console.log(item);// loga os itens na ordem: 1, "texto"//(key e value são os mesmos aqui)for (let [key, value] of meuSet.entries()) console.log(key);// converte Set para um Arrayvar meuArr = [v for (v of mySet)]; // [1, "some text"]// o seguinte também funcionará se for executado em um documento HTMLmySet.add(document.body);mySet.has(document.querySelector("body")); // true// a conversão entre Set e ArraymySet2 = Set([1,2,3,4]);mySet2.size; // 4[...mySet2]; // [1,2,3,4]// intersecção pode ser simulado viavar intersection = new Set([...set1].filter(x => set2.has(x)));// Iterar entradas set com forEachmeuSet.forEach(function(value) {  console.log(value);});// 1// 2// 3// 4

Implementando operações básicas entre conjuntos

js
function isSuperset(set, subset) {  for (var elem of subset) {    if (!set.has(elem)) {      return false;    }  }  return true;}function uniao(setA, setB) {  var _uniao = new Set(setA);  for (var elem of setB) {    _uniao.add(elem);  }  return _uniao;}function interseccao(setA, setB) {  var _interseccao = new Set();  for (var elem of setB) {    if (setA.has(elem)) {      _interseccao.add(elem);    }  }  return _interseccao;}function diferencaSimetrica(setA, setB) {  var _diferenca = new Set(setA);  for (var elem of setB) {    if (_diferenca.has(elem)) {      _diferenca.delete(elem);    } else {      _diferenca.add(elem);    }  }  return _diferenca;}function diferenca(setA, setB) {  var _diferenca = new Set(setA);  for (var elem of setB) {    _diferenca.delete(elem);  }  return _diferenca;}//Exemplosvar setA = new Set([1, 2, 3, 4]),  setB = new Set([2, 3]),  setC = new Set([3, 4, 5, 6]);isSuperset(setA, setB); // => trueuniao(setA, setC); // => Set [1, 2, 3, 4, 5, 6]interseccao(setA, setC); // => Set [3, 4]diferencaSimetrica(setA, setC); // => Set [1, 2, 5, 6]diferenca(setA, setC); // => Set [1, 2]

Relação com objetosArray

js
var myArray = ["value1", "value2", "value3"];// Use o construtor regular de Set para transformar um array dentro de um Setvar mySet = new Set(myArray);mySet.has("value1"); // retorna true// Use o operador de propagação para transformar um Set em um Array.alert(uneval([...mySet])); // Irá mostrar-lhe exatamente o mesmo Array como myArray

Removendo elementos duplicados de umArray

js
// Use para remover elementos duplicados de um Arrayconst numeros = [2, 3, 4, 4, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 5, 32, 3, 4, 5];console.log([...new Set(numeros)]);// [2, 3, 4, 5, 6, 7, 32]

Relação com objetosString

js
var texto = "India";var meuSet = new Set(texto); // Set ['I', 'n', 'd', 'i', 'a']meuSet.size; // 5

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-set-objects

Compatibilidade com navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp