J'essaie de créer une fonction JavaScript qui recherchera une valeur dans un tableau de chaînes et renverra la chaîne suivante. Par exemple, si un tableau est construit de manière à ce qu'un élément soit suivi de son code stock, je souhaite rechercher l'élément et faire écrire le code stock.
var item = (from user input); //some code to get the initial item from user
function findcode(code){
var arr = ["ball", "1f7g", "spoon", "2c8d", "pen", "9c3c"]; //making the array
for (var i=0; i<arr.lenth; i++){ //for loop to look through array
arr.indexOf(item); //search array for whatever the user input was
var code = arr(i+1); //make the variable 'code' whatever comes next
break;
}
}
document.write(code); //write the code, I.e., whatever comes after the item
(Je suis sûr que c’est évident que je suis nouveau en JavaScript, et bien que cela ressemble à un certain nombre de questions que j’ai trouvées, celles-ci semblaient comporter davantage de tableaux ou de recherches plus complexes. Je n'arrive pas à les simplifier pour le Besoins.)
Vous avez presque tout compris, mais la syntaxe est arr[x]
, pas arr(x)
:
index = array.indexOf(value);
if(index >= 0 && index < array.length - 1)
nextItem = array[index + 1]
BTW, en utilisant un objet au lieu d'un tableau pourrait être une meilleure option:
data = {"ball":"1f7g", "spoon":"2c8d", "pen":"9c3c"}
et puis simplement
code = data[name]
Je pense qu'un objet pourrait être probablement une meilleure structure de données pour ce genre de tâche
items = {
ball : "1f7g",
spoon: "2c8d",
pen : "9c3c"
}
console.log(items['ball']); // 1f7g
Articles cyclés du tableau cela pourrait être utile
const currentIndex = items.indexOf(currentItem);
const nextIndex = (currentIndex + 1) % items.length;
items[nextIndex];
Le premier élément sera pris au début du tableau après le dernier élément
Vous pouvez passer un tableau comme argument et renvoyer une valeur trouvée à une fonction
var item = "spoon"; // from user input
var arr = ["ball", "1f7g", "spoon", "2c8d", "pen", "9c3c"]; //making the array
function findcode(item, arr){
var idx = arr.indexOf(item); //search array for whatever the user input was
if(idx >=0 && idx <= arr.length - 2) { // check index is in array bounds
return arr[i+1]; // return whatever comes next to item
}
return '';
}
document.write(findcode(item, arr)); //write the code, i.e., whatever comes after the item