javascript - 我想写一个可以生成随机地址的脚本

标签 javascript arrays

我想编写一个可以生成随机地址的脚本。 例如:

(34578 Dolphin Street, Wonka NY, 44506).

这是我到目前为止所做的:

var address 

var streetNumber = ['25489', '87459', '35478', '15975', '95125', '78965']

var streetName = ['A street', 'B street', 'C street', 'D street', 'E street', 'F street',]

var cityName = ['Riyadh', 'Dammam', 'Jedda', 'Tabouk', 'Makka', 'Maddena', 'Haiel']

var stateName = ['Qassem State', 'North State', 'East State', 'South State', 'West State']

var zipCode = ['28889', '96459', '35748', '15005', '99625', '71465']

那我现在该怎么办?

最佳答案

我建议利用 Arraymapjoin 函数。在映射数组之前,您所需要做的就是创建一个函数,该函数接受数组并返回数组的随机元素,这可以通过选择 0 到数组大小 - 1 之间的随机索引轻松完成。

function getRandomElement(array) {
    // Math.random() does not include 1, so this range is from 0 to size - 1 
    return array[Math.floor(Math.random() * array.length)];
}

现在要创建随机地址,您只需将所有数组添加到另一个数组中,并使用上面的随机函数映射这些数组即可。这将返回一个随机地址元素数组,您可以在该数组上使用 join 函数将数组的所有部分连接成一个字符串。

var template = [streetNumber, streetName, cityName, stateName, zipCode];

function getRandomAddress() {
    return template.map(getRandomElement).join(" ");
}

您还可以在地址元素之间添加所需的文本,只需确保在 getRandomAddress 函数中按原样返回即可。请查看下面的示例:

var streetNumber = ["25489", "87459", "35478", "15975", "95125", "78965"];
var streetName = ["A street", "B street", "C street", "D street", "E street", "F street"];
var cityName = ["Riyadh", "Dammam", "Jedda", "Tabouk", "Makka", "Maddena", "Haiel"];
var stateName = ["Qassem State", "North State", "East State", "South State", "West State"];
var zipCode = ["28889", "96459", "35748", "15005", "99625", "71465"];

var template = [streetNumber, " ", streetName, ", ", cityName, " ", stateName, ", ", zipCode];

function getRandomAddress() {
  return template.map(getRandomElement).join("");
}

function getRandomElement(array) {
  if (array instanceof Array) return array[Math.floor(Math.random() * array.length)];
  else return array;
}

document.querySelector("#refresh").addEventListener("click", function() {
  document.querySelector("#output").textContent = getRandomAddress();
});
<button id="refresh">Get Random Address</button>
<span id="output"></span>

一些有用的链接:

关于javascript - 我想写一个可以生成随机地址的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54347188/

相关文章:

java - Java 中的一个数组中的 Int 和 Double

javascript - 我正在尝试制作响应式文本,但无论屏幕有多大,它的大小都是固定的

javascript - 使用 Three.js 将一个对象的旋转应用于另一个对象

javascript - 将 localStorage 值传递到输入字段时出现问题

javascript - Snap.svg 可拖动组的子级上的单击事件,在触摸设备上未触发事件

java - java数组中的索引

javascript - 我如何创建对象 <T>?

python - 这个减法在Python中是如何工作的?

php动态数组名

c - C 中的数组排序函数