Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

225
Vistas
Cómo hacer una variable dinámica para verificar la matriz con .every

Para un proyecto, debemos verificar si todos los números en una tarjeta coinciden con otra tarjeta con números sorteados. Cuando está codificado con const checkCard = card001, va bien con .every. Al intentar elegir la tarjeta de forma dinámica, extrayendo el número de un almacenamiento local (por ejemplo, const card = 'card'+cardNumber), aparece un error con t.every is not a function. La pregunta: cómo hacer esta dinámica. Esperamos que alguien pueda ayudar a superar este problema.

 checkCard = () => { var cardNumber = localStorage.cardNumber; const card001 = [14, 4, 10, 8, 12, 30, 28, 23, 16, 27, 41, 35, 43, 39, 53, 57, 46, 48, 56, 74, 68, 75, 70, 66] const card002 = [15, 13, 8, 1, 12, 26, 20, 19, 28, 24, 38, 42, 33, 41, 59, 53, 60, 55, 51, 68, 62, 71, 70, 65] const card003 = [11, 5, 4, 13, 9, 23, 27, 16, 18, 26, 44, 38, 40, 36, 53, 47, 56, 55, 50, 69, 65, 63, 61, 74] const previousCallList = JSON.parse(JSON.stringify(this.previousCallList)); console.log('previousCallList: ', previousCallList) const previousCallListNumber = JSON.parse(JSON.stringify(this.previousCallListNumber)); console.log('previousCallListNumber: ', previousCallListNumber) //const card = 'card'+cardNumber; const checkCard = card001 const checkDrawn = previousCallListNumber ; const containsAll = checkCard .every(element => { return checkDrawn.includes(element); }); console.log(containsAll); // 👉️ true } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Hay una diferencia entre estas dos líneas:

 // Point `checkCard` to the current array stored in `card001` const checkCard = card001 // Point `checkCard` to a string "card001" const checkCard = "card001"

Cuando escribe 'card'+cardNumber , está creando una nueva cadena , no una referencia a otra variable.

Si desea elegir dinámicamente una variable en función de su nombre, puede definir propiedades con nombre en un objeto. Por ejemplo:

 const myObject = { a: 1, b: 2, c: 3 }; console.log( myObject["a"], myObject["b"], myObject["c"] )

O, con tus datos:

 const cardNumber = "001"; const card001 = [14, 4, 10, 8, 12, 30, 28, 23, 16, 27, 41, 35, 43, 39, 53, 57, 46, 48, 56, 74, 68, 75, 70, 66] const card002 = [15, 13, 8, 1, 12, 26, 20, 19, 28, 24, 38, 42, 33, 41, 59, 53, 60, 55, 51, 68, 62, 71, 70, 65] const card003 = [11, 5, 4, 13, 9, 23, 27, 16, 18, 26, 44, 38, 40, 36, 53, 47, 56, 55, 50, 69, 65, 63, 61, 74] const cardVarName = "card" + cardNumber; log(cardVarName); // This is now the string "card001", not a reference to the card001 variable // Store the cards in an object const cards = { card001, card002, card003 }; // Reference a card using obj[propertyName] log(cards[cardVarName]) function log(x) { console.log(JSON.stringify(x)); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si tiene la intención de utilizar localStorage , debe familiarizarse con la sintaxis, lo que tiene ahora...

 localStorage.cardNumber;

...debería haberte dado un error. Las siguientes son dos funciones que obtienen y establecen datos hacia y desde localStorage :

 /* >key< is a string assigned as an id to stored data. If there isn't anything stored an empty array is returned/ */ const getLS = key => JSON.parse(localStorage.getItem(key)) || []; /* >key< is same as above. >data< is the value that needs to be stored. */ const setLS = (key, data) => localStorage.setItem(key, JSON.stringify(data));

Tenga en cuenta que LS solo almacena cadenas, por lo que se JSON.parse() y JSON.stringify() en los datos. En el ejemplo, las líneas relacionadas con LS están comentadas porque los fragmentos SO las prohíben; simplemente elimínelas cuando las pruebe en un entorno normal.

Los detalles se comentan en el ejemplo a continuación.

 // Utility function const log = data => console.log(JSON.stringify(data)); //const getLS = key => JSON.parse(localStorage.getItem(key)) || []; //const setLS = (key, data) => localStorage.setItem(key, JSON.stringify(data)); /* All arrays as parameters so function can be reusable */ const deckA = [14, 4, 10, 8, 12, 30, 28, 23, 16, 27, 41, 35, 43, 39, 53, 57, 46, 48, 56, 74, 68, 75, 70, 66]; const deckB = [15, 13, 8, 1, 12, 26, 20, 19, 28, 24, 38, 42, 33, 41, 59, 53, 60, 55, 51, 68, 62, 71, 70, 65]; const deckC = [11, 5, 4, 13, 9, 23, 27, 16, 18, 26, 44, 38, 40, 36, 53, 47, 56, 55, 50, 69, 65, 63, 61, 74]; /** * find match between a given number and a * number from one or more given arrays * @param {number} card = Number to find * @param {arrays} cards = One or more arrays * @returns {array<object>} Each object is * created like this: * {card: 55, row: 2, col: 17} * "card 55 is in the 3rd array index 17" */ const findMatch = (card, ...cards) => { //const data = getLS('cards'); //data.push(card); //setLS('cards', data); // Gather ...cards into an array: // [ [deckA], [deckB], [deckC] ] const decks = [...cards]; /* First, .map() runs through each sub-array and .flatMap() compares each number of each sub- array vs. card. If there's a match, return a new object (see above) otherwise an empty array is returned */ return decks.map((sub, row) => sub.flatMap((num, col) => num === card ? {card: card, row: row, col: col} : [])).flat(); }; log(findMatch(55, deckA, deckB, deckC)); log(findMatch(3, deckA, deckB, deckC)); log(findMatch(25, deckA, deckB, deckC)); log(findMatch(13, deckA, deckB, deckC));

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda