随机数组
前言:這是一個隨機數組,生成ID,value,time三個變量,ID由UUID自定義生成(12位)。時間是在輸入的時間段里隨機生成,間隔固定。多少數組、value范圍、開始時間、結束時間自定義。
第二個,根據上邊隨機生成時間,不改變原有數組的情況下只取整時間輸出,精確到day,第三個,同二,精確到hours(實習第一天的任務)
<!DOCTYPE html><html>
<head>
<title>title</title>
</head>
<body>
<script type="text/javascript">
function getRandArr(maxVal, quantity, startTime, endTime) {
//最大view值,ID個數,開始時間,結束時間
function getRandom(s,e) {
return Math.random()*(e-s)+s;
}
//隨機時間
function getRandTime(startTime,endTime) {
var start = new Date(startTime).getTime();
var end = new Date(endTime).getTime();
var RandTime = [];
for (var a = 0; a <quantity; a++) {
var Time = start + (end - start) / quantity * a;
Time = new Date(Time);
Time = Time.getFullYear()+"-"+(Time.getMonth()+1)+"-"+Time.getDate()+" "+Time.getHours()+":"+Time.getMinutes()+":"+Time.getSeconds();
RandTime.push(Time);
}
return RandTime;
}
//隨機生成ID
function generateUUID() {
var d = new Date().getTime();
var uuid = 'xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
});
return uuid;
}
var st = startTime;
var et = endTime;
var arrT = getRandTime(st,et);
var RandArr = [];
for(var i=0; i<quantity; i++){
var obj = {
id: generateUUID(),
value: getRandom(1,maxVal).toFixed(2),
date : arrT[i]
};
RandArr.push(obj);
}
return RandArr;
}
function getDays(rnd) {
var arr = [];
var t = {};
var date;
rnd.forEach(function(obj){
date = new Date(obj.date).getYMD();
if(!t[date]){
t[date] = date;
arr.push(date);
}
});
return arr;
}
Date.prototype.getYMD = function(){
var retDate = this.getFullYear() + "-"; // 獲取年份。
retDate += this.getMonth() + 1 + "-"; // 獲取月份。
retDate += this.getDate(); // 獲取日。
return retDate; // 返回日期。
};
String.prototype.getDate = function(){
var strArr = this.split('-');
var date = new Date(strArr[0], strArr[1] - 1, strArr[2]);
return date;
};
/* var getFirstDay = function(dataArr,timeArr) {
var arr = []; // 定義一個數組,用來存放符合條件的數據
var t = {}; // 定義一個對象
timeArr.forEach(function(obj){ // 遍歷數組,這個數組是getDays生成的
var res = dataArr.find(function(item){ // 遍歷數組,這個數組是原始數據
// indexOf函數是檢查字符串里面包含指定對象不,不包含返回-1
return item.date.indexOf(obj) != -1; // 返回符合條件的數據
});
res.date = res.date.split(" ")[0];
arr.push(res); // 把數據放到數組里
});
return arr; // 返回數組
};*/
var getFirstHour = function(dataArr,timeArr) {
var arr = []; // 定義一個數組,用來存放符合條件的數據
var t = {}; // 定義一個對象
timeArr.forEach(function(obj){ // 遍歷數組,這個數組是getDays生成的
var res = dataArr.find(function(item){ // 遍歷數組,這個數組是原始數據
// indexOf函數是檢查字符串里面包含指定對象不,不包含返回-1
return item.date.indexOf(obj) != -1; // 返回符合條件的數據
});
res.date = res.date.split(":")[0];
arr.push(res); // 把數據放到數組里
});
return arr; // 返回數組
};
var rnd = getRandArr (100, 50,' 2017-10-1,11:15:15', '2017-10-11,11:15:15');
var timeArr = getDays(rnd);
console.log(timeArr);
console.log(rnd);
console.log(getFirstHour(rnd,timeArr));
/* var arr = [];
for(var i in ret){
var find = rnd.find(function(elem){
return elem.date > i
});
arr.push(find);
}
console.log(arr);
*/
</script>
</body>
</html>
?
轉載于:https://www.cnblogs.com/qingxin95/p/7657417.html
總結
- 上一篇: C# CheckBox与RadioBu
- 下一篇: 「日常训练」Common Subexpr