定义一个随机数函数
function rand(offset) {
var num = Math.random() * offset; //生成浮点类型的随机数
return Math.floor(num); //对结果取整并返回
}
运行一下
定义一个基于基础温度+偏移量的生成随机温度的函数
function generate_temperature(_base, _offset) {
//基础温度 + 随机 0 - offset(偏移量)
return _base + rand(_offset);
}
运行一下
定义一个生成随机风向的函数
function generate_wind() {
var direction = ["东", "南", "西", "北"]; //定义方向数组
var d1 = direction[rand(4)]; //获取第一个随机方向
var d2 = direction[rand(4)]; //获取第二个随机方向
if (d1 == d2) d2 = ""; //如果两个方向一至,则只显示一次,避免出现“东东风”,“西西风”之类的
return d1 + d2 + "风" + (1 + rand(4)) + "级"; //随机生成 1 - 4 级
}
运行一下
定义一个生成随机天气的函数
function generate_style() {
return ["晴天", "多云", "阵雨", "小雨"][rand(4)];
}
运行一下
定义城市列表
var cityArr = ["长沙", "北京", "上海", "广州", "深圳"];
定义日期列表
var dateArr = [];
var startday = 14;
for (var i = 0; i < 15; i++) {
dateArr.push("2025-11-" + (startday + i));
}
运行一下
生成数据
var data = []; //定义空列表
//遍历日期列表
dateArr.forEach((date) => {
//遍历城市列表
cityArr.forEach((city) => {
var d = {
date: date, //赋值日期
city: city, //赋值城市
style: generate_style(), //生成天气
wind: generate_wind(), //生成气向
temperature: 0, //默认温度为零
rain: 0, //默认降水量为零
ultraviolet_ray: 1 + rand(3), //随机生成 1-4 紫外线级数
};
//如果为降雨天气,生成降水量
if (d.style == "阵雨") d.rain = (rand(30) + 20) / 100; //阵雨降水量 0.2mm - 0.5mm 之间
//根据不同的城市地理位置生成温度
switch (city) {
case "长沙":
d.temperature = generate_temperature(14, 5);
break;
case "北京":
d.temperature = generate_temperature(10, 3);
break;
case "上海":
d.temperature = generate_temperature(18, 3);
break;
case "广州":
d.temperature = generate_temperature(25, 5);
break;
case "深圳":
d.temperature = generate_temperature(21, 5);
break;
}
data.push(d); //将生成的数据添加到列表
});
运行一下
下载本示例:
026s.com/weather.zip