Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda