jQuery老黄历完整实现方法(3)

// 生成今日运势
function pickTodaysLuck() {
 var numGood = random(iday, 98) % 3 + 2;
 var numBad = random(iday, 87) % 3 + 2;
 var eventArr = pickRandomActivity(numGood + numBad);
 var specialSize = pickSpecials();
 for (var i = 0; i < numGood; i++) {
  addToGood(eventArr[i]);
 }
 for (var i = 0; i < numBad; i++) {
  addToBad(eventArr[numGood + i]);
 }
}

// 添加预定义事件
function pickSpecials() {
 var specialSize = [0,0];
 
 for (var i = 0; i < specials.length; i++) {
  var special = specials[i];
  
  if (iday == special.date) {
   if (special.type == 'good') {
    specialSize[0]++;
    addToGood({name: special.name, good: special.description});
   } else {
    specialSize[1]++;
    addToBad({name: special.name, bad: special.description});
   }
  }
 }
 return specialSize;
}

// 从 activities 中随机挑选 size 个
function pickRandomActivity(size) {
 var picked_events = pickRandom(activities, size);
 for (var i = 0; i < picked_events.length; i++) {
  picked_events[i] = parse(picked_events[i]);
 }
 return picked_events;
}

// 从数组中随机挑选 size 个
function pickRandom(array, size) {
 var result = [];
 for (var i = 0; i < array.length; i++) {
  result.push(array[i]);
 }
 for (var j = 0; j < array.length - size; j++) {
  var index = random(iday, j) % result.length;
  result.splice(index, 1);
 }
 return result;
}

// 解析占位符并替换成随机内容
function parse(event) {
 var result = {name: event.name, good: event.good, bad: event.bad};  // clone
 if (result.name.indexOf('%v') != -1) {
  result.name = result.name.replace('%v', varNames[random(iday, 12) % varNames.length]);
 }
 if (result.name.indexOf('%t') != -1) {
  result.name = result.name.replace('%t', tools[random(iday, 11) % tools.length]);
 }
 if (result.name.indexOf('%l') != -1) {
  result.name = result.name.replace('%l', (random(iday, 12) % 247 + 30).toString());
 }
 return result;
}

// 添加到“宜”
function addToGood(event) {
 $('.good .content ul').append('<li><div>' + event.name + '</div><div>' + event.good + '</div></li>');
}

// 添加到“不宜”
function addToBad(event) {
 $('.bad .content ul').append('<li><div>' + event.name + '</div><div>' + event.bad + '</div></li>');
}

$(function(){
 $('.date').html(getTodayString());
 $('.direction_value').html(directions[random(iday, 2) % directions.length]);
 $('.drink_value').html(pickRandom(drinks,2).join());
 $('.goddes_value').html(random(iday, 6) % 50 / 10.0);
 pickTodaysLuck();
});

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgxwxf.html