javascript - Cómo obtener el primer elemento de un Set en ES6 (EcmaScript 2015)
En ES6, ¿cómo obtenemos rápidamente el elemento?
En la sintaxis de MDN para Set, no encontré una respuesta para ello.
Respuesta #1
No parecen exponer la Lista para que sea accesible desde el Objeto instanciado. Esto es del Borrador de EcmaScript:
23.2.4 Propiedades de las Instancias de Conjuntos
Las instancias de Set son objetos ordinarios que heredan propiedades del prototipo Set. Las instancias de Set también tienen un espacio interno [[SetData]].
[[SetData]] es la lista de valores que contiene el Conjunto.
Una posible solución (y algo cara) es tomar un iterador y luego llamar a next() para obtener el primer valor:
var x = new Set();
x.add(1);
x.add({ a: 2 });
//get iterator:
var it = x.values();
//get first entry:
var first = it.next();
//get value out of the iterator entry:
var value = first.value;
console.log(value); //1
Vale la pena mencionar también:
Set.prototype.values === Set.prototype.keys
Respuesta #2
hay muchas soluciones
- bucle
for...of
const set = new Set();
set.add(2);
set.add(3);
// return the first item of Set ✅
function getFirstItemOfSet(set) {
for(let item of set) {
if(item) {
return item;
}
}
return undefined;
}
const first = getFirstItemOfSet(set);
console.log('first item =', first);destructuring assignment
const set = new Set();
set.add(2);
set.add(3);
// only get the first item ✅
const [first] = set;
console.log('first item =', first, typeof first);
// first item = 2 number- operador
...spread
const set = new Set();
set.add(2);
set.add(3);
// convert Set to Array ✅
const first = [...set][0];
console.log('first item =', first);iterador&siguiente()
const set = new Set();
set.add(2);
set.add(3);
// iterator ✅
const first = set.keys().next().value;
console.log(`first item =`, first);
// OR
set.values().next().value;
// OR
set.entries().next().value[0];
// OR
set.entries().next().value[1];referencias
https://www.cnblogs.com/xgqfrms/p/16564519.html
Respuesta #3
sucinta
let s = new Set([2,3,4]) // given a set s
let [head] = s // use destructuring to get its first element
console.log(head)