直接上代码
// type 为城市列表(这里只用String类型使用,其他需求请自行修改),citys为选取的个数
var city=function(type,citys){
var str = type
// String类型转换为数组 分隔符自行随机应变
var newStr = str.split("、")
//创建一个空数组
var arr = new Array()
for (var i=0 ;i<citys;i++){
// 取随机下标(听大牛说 random只是个伪随机,有更好的随即方法还请指教)
var num = Math.random()*newStr.length
// 向下取整
num = Math.floor(num)
// 使用ES7 includes 来判断数组内的数字是否重复
if(arr.includes(num)){
// 如果重复,重置i的值
i--
}else{
// 不重复就放数组里面去
arr.push( num )
}
}
// 使用API对数组进行排序
var newArr = arr.sort(function(a,b){
return a-b
})
for (let n in newArr){
//遍历数组,然后输出城市
console.log(newStr[newArr[n]])
}
}
// 初始城市列表
var citys="杭州、金华西、玉山、上饶、鹰潭、东乡、进贤、新余、萍乡、株洲、娄底、怀化、玉屏、镇远、凯里、福泉、贵定、贵阳、安顺、六枝、六盘水、草海、昭通、盐津、水富、宜宾、自贡、内江、资中、资阳、简阳、成都"
// 调用函数
city(citys,3)
关于优化,还请大佬指教,目前小老弟还是萌新一枚