Home > Net >  Getting and printing random value as string from javascript array
Getting and printing random value as string from javascript array

Time:01-17

get a random string value from a JavaScript array.

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;
}

a new InputBox generated with id: 'newInputBox1'.

I get value from the user via a prompt and cannot insert it into this generated box

CodePudding user response:

A small change to your code should make everything work nicely.

We'll get a randomIndex using Math.random() then use it as an index to the input array.

We'd wrap this up in a getRandomElement() function and pass the randomcity array to it:

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>

CodePudding user response:

Check out the commented code below, as a candidate solution for your problem

 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>

CodePudding user response:

Something is missing in your code. Here down i can display your mistake

1. You forget to add round bracket () after Math.random

2. You can not linked your array with random variable so, it's always take undefined as value

3. You forget to call generateRandom() method.

Here down is code:

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 = ''/>

  •  Tags:  
  • Related