题解 | #双色球机选一注#
双色球机选一注
https://www.nowcoder.com/practice/4d712994d0364a159f8169b7b0e74d04
randomFn(); function randomFn() { // 随机数生成函数 var randomNum = (min, max) => { return Math.floor(Math.random() * (max - min)) + min; }; // 运行前清除所有的高亮元素 document.querySelectorAll("b").forEach((item) => { item.removeAttribute("class"); }); // 所有红球 var redBalls = document.querySelectorAll(".red .balls-wp b"); // 随机红球索引 var tempRedArr = []; // 生成6个不重复的且0-30的随机数 for (var index = 0; index < 6; index++) { let tempNum = randomNum(0, 30); if (!tempRedArr.includes(tempNum)) { tempRedArr.push(tempNum); } else { index--; } } // 直接把索引排好序列 tempRedArr.sort((a, b) => a - b); // 把对应index下的红球高亮 tempRedArr.forEach((item) => (redBalls[item].className = "active")); // 红球排序 redBalls.forEach((item, index) => { if (redBalls[index].className === "active") { document .querySelector(".red .balls-wp") .insertBefore(redBalls[index], redBalls[0]); } }); // 篮球同理。蓝色因为只有一个 var blueBalls = document.querySelectorAll(".blue .balls-wp b"); // 篮球随即索引 var blueIndex = randomNum(0, 15); blueBalls.forEach((item, index) => { if (index === blueIndex) { item.className = "active"; document .querySelector(".blue .balls-wp") .insertBefore(item, blueBalls[0]); } }); // 返回指定格式 var strRed = tempRedArr .map((item) => { if (`${item + 1}`.length < 2) { return (item = `0${item + 1}`); } return item + 1; }) .join(","); var strBlue = blueBalls[blueIndex].innerHTML; return `${strRed}|${strBlue}`; } //本地测试ok,大佬们那里不对劲了