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

249
Vistas
¿Cómo puedo entender mejor este tema, para ser un mejor programador?

tengo una pregunta. Estuve pensando mucho tiempo en ello, pero mal no encuentro respuesta. Conozco todos los métodos.

Mi pregunta es sobre esta sección de código:

 var tr = order.every((i) => stock[i[0]] >= i[1]);

Mis preguntas son:

  1. stock es un Objeto. ¿Por qué debo escribir como una matriz?

  2. ¿Por qué está i[0] en stock y luego i[1] ?

  3. ¿Por qué este código verifica las matrices anidadas en orden constante?

 const order = [ ["shirt", 5], ["shoes", 2] ]; const stock = { shirt: 50, height: 172, mass: 120, shoes: 6 }; var tr = order.every((i) => stock[i[0]] >= i[1]); /// return true console.log(`tr:`,tr)

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Entonces, los corchetes se pueden usar para acceder al elemento dentro de la matriz pasando su índice , por ejemplo:

 const arr = ["first", "second"]; const secondElement = arr[1] // index 1 means seconds element

y también se pueden usar corchetes para acceder al elemento dentro del objeto pasando su clave , por ejemplo:

 const obj = { first: 1, second: 2 }; const secondElement = object.second // Normal way to access value in object const secondElementWithAnotherSyntax = object['second'] // another syntax, same thing

lo bueno de la otra sintaxis que se muestra es que puede pasarle variables, por ejemplo:

 const objKey = 'second' const secondElement = obj[objKey]

Ahora veamos su ejemplo, i es un elemento del order de la matriz, que lleva las matrices en sí, por lo i también es una de las dos matrices pequeñas, i[0] es la palabra de cadena al comienzo de las matrices pequeñas, entonces:

i[0] // is either 'shirt' or 'shoes' y dado que stocks es un objeto que tiene esas claves, puede acceder, por ejemplo, al valor 50 diciendo stocks['shirt'] o como en su caso, stock[i[0]] ;)

ahora tu segunda pregunta: ¿por qué debería ser >= i[1] ? porque el segundo artículo del order , también conocido como i[1] es la cantidad de artículos requeridos/pedidos, por lo que siempre debe ser menor que su stock, no puede comprar 5 camisas de un lugar que solo tiene 3 en stock :)

about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Puedo sugerir que intente usar una denominación más expresiva de las variables?

Se puede acceder a una propiedad de objeto a través de la notación de paréntesis, como en stock[orderedProductName] cuando se usa una variable - Accesores de propiedad

Se puede escribir una versión concisa pero más legible utilizando la asignación de desestructuración

 const order = [ ["shirt", 5], ["shoes", 2] ]; const stock = { shirt: 50, height: 172, mass: 120, shoes: 6, }; // original version let inStock = order.every((i) => stock[i[0]] >= i[1]); /// return true // more verbose version // check if every item in array order satisfies the condition // let's cycle over the array calling the element we're working on // orderItem inStock = order.every( orderItem => { const orderedProductName = orderItem[0]; const orderedProductQuantity = orderItem[1]; // to access an object property we can use bracket notation const stockProductQuantity = stock[orderedProductName]; // the condition to check: do we have enough products in stock ? return stockProductQuantity >= orderedProductQuantity; }); // a concise variation could make use of destructuring assignment. // Here, when we take the order item array, we immediately assign // each of its elements to the appropriate variable // // orderItem[0] or first array element -> productName // orderItem[1] or second array element -> orderedQuantity inStock = order.every(([productName, orderedQuantity]) => stock[productName] >= orderedQuantity ); if(inStock) { console.log('pack and ship'); } else { console.log('need to restock'); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

1. la acción es un Objeto. ¿Por qué debo escribir como una matriz?

Puede acceder a las propiedades de los objetos usando corchetes [] .

¿Porqué necesitamos esto?

  1. Para poder acceder a las propiedades de los objetos de forma dinámica, por ejemplo, cuando está recorriendo las teclas y desea obtener los valores
 Object.keys(data).forEach(function(key) { console.log('Key : ' + key + ', Value : ' + data[key]) })
  1. A veces no hay otra forma de acceder al valor:
 const json = { "id":"1", "some key with spaces": "48593" }; console.log(json.some key with spaces); // obviously throws error console.log(json['some key with spaces']); // prints "48593"

2. ¿Por qué está i[0] en stock y luego i[1]?

3. ¿Por qué este código verifica las matrices anidadas en orden constante?

El código pasa por los pedidos, cada pedido es una matriz, por lo que i[0] es el tipo de pedido e i[1] es la cantidad. el código comprueba si hay suficientes artículos en stock. Para verificar si hay suficientes camisas, harías:

 console.log(stock["shirts"] >= 5

Eso es lo que hace el código en su ejemplo, solo pasa la clave ( "shirts" ) y la cantidad ( 5 ) dinámicamente.

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