6

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

3
  • 1
    The random picking of the array element is working? Commented Jan 17, 2022 at 12:50
  • No, it doesn't come as a string, it comes as a number. Commented Jan 17, 2022 at 12:53
  • Then why are you not describing this in your question? document.getElementById('newInputBox1').value=randomcity[random] Commented Jan 17, 2022 at 13:53

3 Answers 3

3

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>

Sign up to request clarification or add additional context in comments.

1 Comment

Thank you to each and every one of you
1

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>

2 Comments

Ali hocam teşekkürlerimi sunar iyi günler dilerim.
rica ederim ve iyi günler :)
1

Something is missing in your code. Here down i can explain 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 = ''/>

1 Comment

Thank you to each and every one of you

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.