Lo siento si esto es un duplicado. Estoy buscando la mejor manera de convertir una matriz en una clave que pueda usar para un conjunto en JavaScript.
const set = new Set() const arr = [1,0,-1] const arr2 = [1,0,-1] set.add(arr) set.add(arr2)Esto debería funcionar porque tanto arr como arr2 son objetos diferentes y el conjunto reconoce sus referencias como únicas. ¿Cuál es la mejor manera de convertir arr y arr2 en claves para que el conjunto las reconozca como únicas?
Intenté hacer JSON.stringify(arr), pero tuve dificultades para volver a convertirlos en número[].
¡Cualquier ayuda es apreciada!
Aquí está la versión completa del código que estoy intentando:
function twoSum(nums: number[], excludeIndex: number, target: number) { let startPointer = 0; let endPointer = nums.length - 1; while(startPointer < endPointer) { if(startPointer === excludeIndex) { startPointer++; } if(endPointer === excludeIndex) { endPointer--; } if(nums[startPointer] + nums[endPointer] === target) { return [startPointer, endPointer] } if(nums[startPointer] + nums[endPointer] > target) { endPointer--; } else{ startPointer++; } } return undefined } function threeSum(nums: number[]): number[][] { if(nums.length < 3) { return [] } nums.sort((a,b) => a - b); let index = 0; const uniqueTriplets = new Set() while(index < nums.length) { const num = nums[index] const twoSumResult = twoSum(nums, index, (num * -1)) if(twoSumResult !== undefined) { const triplet = [num, nums[twoSumResult[0]], nums[twoSumResult[1]]] triplet.sort((a,b) => a - b) uniqueTriplets.add(JSON.stringify(triplet)) } index++; } return Array.from(uniqueTriplets.keys()).map(k => JSON.parse(k)) }En la última declaración de devolución, aparece un error que dice: "El argumento de tipo 'desconocido' no se puede asignar al parámetro de tipo 'cadena'". Cuando agrego el JSON.parse(k)