javascript - 我想写一个可以生成随机地址的脚本
问题描述
我想写一个可以生成随机地址的脚本。例如:
(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']
那我现在该怎么办?
解决方案
我map
建议利用join
. Array
在映射数组之前,您所需要的只是创建一个接受数组并返回数组的随机元素的函数,这可以通过选择介于 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)];
}
现在要创建一个随机地址,您只需将所有数组添加到另一个数组中,以及map
使用上述随机函数的数组。这将返回一个随机地址元素数组,您可以在该数组上使用该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>
一些有用的链接:
推荐阅读
- r - mutate_impl(.data, dots) 中的错误:尝试使用零长度变量名
- angular - Angular - 如何更快地构建 72 个生产包
- opencv - ORB+BFMatcher 是否适合识别重复图像(有细微的变化?)
- c# - 从c#调用ruby脚本,进程不退出
- sorting - SELECT DISTINCT 仅用于 Google 表格查询中的一列
- c# - 为什么我的 OpenProcess(..) 调用总是返回 0?
- html - 带有图像损坏对齐的引导下拉菜单
- selenium - Linux / chromium 上的 selenium TimeoutException
- node.js - 通过 Google 操作的帐户链接过程(通过 google 操作的令牌生成过程)
- vue.js - 一些 .vue(和 .ts)文件的 Webpack 源映射不再包含原始代码(sourcesContent)