Soy un nuevo estudiante de programación y estoy tratando de resolver una tarea.
Tengo que escribir una función que devuelva valores de una matriz cuando el usuario selecciona valores de otra matriz uno a uno.
Probé lo siguiente, entre otras cosas, y da un error de referencia (Apple no está definido; pero Apple es un elemento en la primera matriz).
var valueFromSelect = Apple; for (var i = 0; i < fruits.length; i++){ if(valueFromSelect == fruits[i]){ console.log(prices[i]); breakEn resumen, quiero devolver un precio por cada fruta que se seleccione. Aquí están las matrices:
var fruits = ["Apple", "Orange", "Banana", "Pear", "Pineapple", "Strawberry", "Blueberry"]; var prices = [1.50, 1.20, 1.05, 1.10, 3.00, 0.40, 0.10]Gracias.
El valor de Apple debe ser una string si su matriz contiene cadenas.
var valueFromSelect = "Apple"; var fruits = ["Banana", "Orange", "Apple"];PD: puede simplificar su código utilizando el método de filtro (del prototipo de matriz) como se muestra a continuación:
var valueFromSelect = "Apple"; var fruits = ["Banana", "Orange", "Apple"]; var result = fruits.filter(fruit => valueFromSelect == fruit); Esto le devolverá una Array que contiene cada uno de los valores que coincidieron con los elementos de su matriz. por lo tanto, si result.length > 0 , puede considerar su parámetro como 'coincidente'.
El error que está recibiendo se debe a que para que JS entienda que Apple es una cadena, debe rodearla con " (comillas dobles) o ' (comillas).
La forma en que está ahora es decirle a JS que guarde en valueFromSelect el valor almacenado en algo llamado Apple que aún no ha definido.
Ejemplos:
'Apple'"Apple"De esta manera debería funcionar:
var valueFromSelect = 'Apple'; for (var i = 0; i < fruits.length; i++){ if(valueFromSelect == fruits[i]){ console.log(prices[i]); breakComo desea una función que imprima el precio de una fruta determinada, debe crear una función que reciba la fruta seleccionada como parámetro:
function printFruitPrice(valueFromSelect) { for (var i = 0; i < fruits.length; i++){ if(valueFromSelect == fruits[i]){ console.log(prices[i]); break } } }Entonces úsalo como:
printFruitPrice('Apple');