【问题标题】:Getting and printing random value as string from javascript array从javascript数组获取随机值并将其打印为字符串
【发布时间】:2022-01-17 12:47:00
【问题描述】:

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

生成一个新的InputBox,id 为:'newInputBox1'。

我通过提示从用户那里获得价值,但无法将其插入到这个生成的框中

【问题讨论】:

  • 随机选取数组元素有效吗?
  • 不,它不是字符串,而是数字。
  • 那你为什么不在你的问题中描述这个? document.getElementById('newInputBox1').value=randomcity[random]

标签: javascript arrays string random


【解决方案1】:

对您的代码稍作改动即可让一切正常运行。

我们将使用 Math.random() 获得 randomIndex,然后将其用作输入数组的索引。

我们将其封装在 getRandomElement() 函数中,并将 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>

【讨论】:

  • 感谢每一个人
【解决方案2】:

查看下面的注释代码,作为您问题的候选解决方案

 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>

【讨论】:

  • Ali hocam teşekkürlerimi sunar iyi günler dilerim.
  • rica ederim ve iyi günler :)
【解决方案3】:

您的代码中缺少某些内容。下面我可以解释你的错误

1.你忘记在Math.random后面加上圆括号()

2.你不能将你的数组与random变量链接,所以它总是以undefined为值

3.你忘记调用generateRandom()方法了。

下面是代码:

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

【讨论】:

  • 感谢每一个人
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 2018-06-19
  • 2022-10-08
相关资源
最近更新 更多