// Math.random()会返回一个0~1之间的随机数,包含0不包含1,用区间表示则是[0, 1) for (i = 0; i < 10; i++) { console.log('第' + i + '个随机数:' + Math.random()); } // 第0个随机数:0.22490258245315387 // 第1个随机数:0.8061309070835714 // 第2个随机数:0.6288091350369744 // 第3个随机数:0.3977572971277936 // 第4个随机数:0.2984673423979354 // 第5个随机数:0.4947517323656667 // 第6个随机数:0.8637223168564752 // 第7个随机数:0.23646970057960193 // 第8个随机数:0.36865076412906705 // 第9个随机数:0.44227457974644646 /** * 生成一个随机整数 * * @param int min 随机整数最小值(含) * @param int max 随机整数最大值(含) * @return int 随机整数 */ function mt_rand(min, max) { const argc = arguments.length; if (argc === 0) { min = 0; max = 2147483647; } else if (argc === 1) { throw new Error('Warning: mt_rand() expects exactly 2 parameters, 1 given'); } else { min = parseInt(min, 10); max = parseInt(max, 10); } return Math.floor(Math.random() * (max - min + 1)) + min; } for (i = 0; i < 10; i++) { console.log('第' + i + '个随机数:' + mt_rand(1, 10)); } // 第0个随机数:1 // 第1个随机数:8 // 第2个随机数:4 // 第3个随机数:4 // 第4个随机数:10 // 第5个随机数:7 // 第6个随机数:5 // 第7个随机数:10 // 第8个随机数:6 // 第9个随机数:8 /** * 从数组中随机选出一个或多个元素 * * @param array array 数组 * @param int num 随机选出元素的数量 * @return int|array 若数量为1个则返回数组键名,若数量为多个则返回数组键名的数组 */ function array_rand(array, num) { const keys = Object.keys(array); if (typeof num === 'undefined' || num === null) { num = 1; } else { num = +num; } if (isNaN(num) || num < 1 || num > keys.length) { return null; } for (let i = keys.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); const tmp = keys[j]; keys[j] = keys[i]; keys[i] = tmp; } return num === 1 ? keys[0] : keys.slice(0, num); } var names = ['刘一', '陈二', '张三', '李四', '王五', '赵六', '孙七', '周八', '吴九', '郑十']; for (i = 0; i < 10; i++) { console.log('第' + i + '个名字:' + names[array_rand(names, 1)]); } // 第0个名字:陈二 // 第1个名字:刘一 // 第2个名字:周八 // 第3个名字:周八 // 第4个名字:郑十 // 第5个名字:李四 // 第6个名字:孙七 // 第7个名字:张三 // 第8个名字:王五 // 第9个名字:刘一
Copyright © 2024 码农人生. All Rights Reserved