obtener un valor de cadena aleatorio de una matriz de JavaScript .
var randomcity = ["Adana", "Adıyaman", "Afyonkarahisar", "Ağrı"," Aksaray", "Amasya", "Ankara", "Antalya", "Ardahan", "Artvin", "Aydın", "Balıkesir", "Bartın", "Batman", "Bayburt", "Bilecik", "Bingöl", "Bitlis", "Bolu", "Burdur", "Bursa", "Çanakkale", "Çankırı", "Çorum", "Denizli", "Diyarbakır", "Düzce", "Edirne", "Elazığ", "Erzincan", "Erzurum", "Eskişehir", "Gaziantep", "Giresun", "Gümüşhane", "Hakkâri", "Hatay", "Iğdır", "Isparta", "İstanbul", "İzmir", "Kahramanmaraş", "Karabük", "Karaman", "Kars", "Kastamonu", "Kayseri", "Kilis", "Kırıkkale", "Kırklareli", "Kırşehir", "Kocaeli", "Konya", "Kütahya", "Malatya", "Manisa", "Mardin", "Mersin", "Muğla", "Muş", "Nevşehir", "Niğde", "Ordu", "Osmaniye", "Rize", "Sakarya", "Samsun", "Şanlıurfa", "Siirt", "Sinop", "Sivas", "Şırnak", "Tekirdağ", "Tokat", "Trabzon", "Tunceli", "Uşak", "Van", "Yalova", "Yozgat", "Zonguldak"]; var random; function generateRandom () { random=Math.floor(Math.random * randomcity.length); console.log(random.value); document.getElementById('newInputBox1').value=random; } un nuevo InputBox generado con id: 'newInputBox1'.
Obtengo valor del usuario a través de un aviso y no puedo insertarlo en este cuadro generado
Un pequeño cambio en su código debería hacer que todo funcione bien.
Obtendremos un índice aleatorio usando randomIndex () y luego lo usaremos como un índice para la matriz de entrada.
Envolveríamos esto en una función getRandomElement() y le pasaríamos la matriz randomcity:
const randomcity = ["Adana", "Adıyaman", "Afyonkarahisar", "Ağrı"," Aksaray", "Amasya", "Ankara", "Antalya", "Ardahan", "Artvin", "Aydın", "Balıkesir", "Bartın", "Batman", "Bayburt", "Bilecik", "Bingöl", "Bitlis", "Bolu", "Burdur", "Bursa", "Çanakkale", "Çankırı", "Çorum", "Denizli", "Diyarbakır", "Düzce", "Edirne", "Elazığ", "Erzincan", "Erzurum", "Eskişehir", "Gaziantep", "Giresun", "Gümüşhane", "Hakkâri", "Hatay", "Iğdır", "Isparta", "İstanbul", "İzmir", "Kahramanmaraş", "Karabük", "Karaman", "Kars", "Kastamonu", "Kayseri", "Kilis", "Kırıkkale", "Kırklareli", "Kırşehir", "Kocaeli", "Konya", "Kütahya", "Malatya", "Manisa", "Mardin", "Mersin", "Muğla", "Muş", "Nevşehir", "Niğde", "Ordu", "Osmaniye", "Rize", "Sakarya", "Samsun", "Şanlıurfa", "Siirt", "Sinop", "Sivas", "Şırnak", "Tekirdağ", "Tokat", "Trabzon", "Tunceli", "Uşak", "Van", "Yalova", "Yozgat", "Zonguldak"]; function getRandomElement(arr) { return arr[Math.floor(Math.random()*arr.length)]; } function generateRandom () { document.getElementById('newInputBox1').value = getRandomElement(randomcity); } generateRandom(); <label>Result: </label><input id='newInputBox1' value = ''/> <button type='Button' onclick='generateRandom()'>Generate Random</button>Consulte el código comentado a continuación, como una solución candidata para su problema
const randomcity = [ "Adana", "Adıyaman", "Afyonkarahisar", "Ağrı", " Aksaray", "Amasya", "Ankara", "Antalya", "Ardahan", "Artvin", "Aydın", "Balıkesir", "Bartın", "Batman", "Bayburt", "Bilecik", "Bingöl", "Bitlis", "Bolu", "Burdur", "Bursa", "Çanakkale", "Çankırı", "Çorum", "Denizli", "Diyarbakır", "Düzce", "Edirne", "Elazığ", "Erzincan", "Erzurum", "Eskişehir", "Gaziantep", "Giresun", "Gümüşhane", "Hakkâri", "Hatay", "Iğdır", "Isparta", "İstanbul", "İzmir", "Kahramanmaraş", "Karabük", "Karaman", "Kars", "Kastamonu", "Kayseri", "Kilis", "Kırıkkale", "Kırklareli", "Kırşehir", "Kocaeli", "Konya", "Kütahya", "Malatya", "Manisa", "Mardin", "Mersin", "Muğla", "Muş", "Nevşehir", "Niğde", "Ordu", "Osmaniye", "Rize", "Sakarya", "Samsun", "Şanlıurfa", "Siirt", "Sinop", "Sivas", "Şırnak", "Tekirdağ", "Tokat", "Trabzon", "Tunceli", "Uşak", "Van", "Yalova", "Yozgat", "Zonguldak" ] var randomCityIndex; var element; var divElement; function generateRandom() { //Get the elements by ID element = document.getElementById('newInputBox1'); divElement = document.getElementById('div'); // Get the index of Random City const rand = Math.floor(Math.random() * randomcity.length); // Set the value for input tag as el.value = randomValue element.value = randomcity[rand]; // For other type of tags like div and p, use el.innerHtml or el.innerText = randomValue divElement.innerHTML = randomcity[rand]; } #div, p { font-size: 16px; width: 400px; margin: 5px auto; background-color: burlywood; text-align: center; padding: 10px; } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Random City</title> </head> <body> <h1>Random City </h1> <button onclick="generateRandom()">Random City</button> In Input: <input id="newInputBox1"/> <p>Random City in div:</p> <div id="div">{Click the button to see RandomCity}</div> </body> </html>Falta algo en tu código. Aquí abajo puedo explicar tu error
1. Olvidó agregar el corchete () después de Math.random
2. No puede vincular su matriz con una variable random , por lo que siempre toma un valor undefined
3. Te olvidas de llamar al método generateRandom() .
Aquí abajo está el código:
var randomcity = ["Adana", "Adıyaman", "Afyonkarahisar", "Ağrı"," Aksaray", "Amasya", "Ankara", "Antalya", "Ardahan", "Artvin", "Aydın", "Balıkesir", "Bartın", "Batman", "Bayburt", "Bilecik", "Bingöl", "Bitlis", "Bolu", "Burdur", "Bursa", "Çanakkale", "Çankırı", "Çorum", "Denizli", "Diyarbakır", "Düzce", "Edirne", "Elazığ", "Erzincan", "Erzurum", "Eskişehir", "Gaziantep", "Giresun", "Gümüşhane", "Hakkâri", "Hatay", "Iğdır", "Isparta", "İstanbul", "İzmir", "Kahramanmaraş", "Karabük", "Karaman", "Kars", "Kastamonu", "Kayseri", "Kilis", "Kırıkkale", "Kırklareli", "Kırşehir", "Kocaeli", "Konya", "Kütahya", "Malatya", "Manisa", "Mardin", "Mersin", "Muğla", "Muş", "Nevşehir", "Niğde", "Ordu", "Osmaniye", "Rize", "Sakarya", "Samsun", "Şanlıurfa", "Siirt", "Sinop", "Sivas", "Şırnak", "Tekirdağ", "Tokat", "Trabzon", "Tunceli", "Uşak", "Van", "Yalova", "Yozgat", "Zonguldak"] var random; function generateRandom () { random = randomcity[Math.floor(Math.random() * randomcity.length)]; document.getElementById('txtcity').value = random; } generateRandom(); <label>City: </label> <input id='txtcity' value = ''/>