Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于从阵列中随机选择唯一项并添加到新阵列的问题_Javascript_Jquery - Fatal编程技术网

Javascript 关于从阵列中随机选择唯一项并添加到新阵列的问题

Javascript 关于从阵列中随机选择唯一项并添加到新阵列的问题,javascript,jquery,Javascript,Jquery,请看一下这个演示,让我知道如何从国家/地区数组中为每个国家/地区选择25个独特的项目 var player1 = []; var player2 = []; var player3 = []; var player4 = []; 正如我所说的,每个阵列都有25个独特的项非常重要。下面是我正在处理的示例: $(函数(){ var国家=[“阿富汗”、“阿尔巴尼亚”、“阿尔及利亚”、“安道尔”、“安哥拉”、“安圭拉”、“安提瓜和巴布达”、“阿根廷”、“亚美尼亚”、“

请看一下这个演示,让我知道如何从
国家/地区
数组中为每个国家/地区选择25个独特的项目

    var player1 = [];
    var player2 = [];
    var player3 = [];
    var player4 = [];
正如我所说的,每个阵列都有25个独特的项非常重要。下面是我正在处理的示例:

$(函数(){
var国家=[“阿富汗”、“阿尔巴尼亚”、“阿尔及利亚”、“安道尔”、“安哥拉”、“安圭拉”、“安提瓜和巴布达”、“阿根廷”、“亚美尼亚”、“阿鲁巴”、“澳大利亚”、“奥地利”、“阿塞拜疆”、“巴哈马”、“巴林”、“孟加拉国”、“巴巴多斯”、“白俄罗斯”、“比利时”、“伯利兹”、“贝宁”、“百慕大”、“不丹”、“玻利维亚”、“波斯尼亚和黑塞哥维那”、“博茨瓦纳”,“巴西、英属维尔京群岛、文莱、保加利亚、布基纳法索、布隆迪、柬埔寨、喀麦隆、佛得角、开曼群岛、乍得、智利、中国、哥伦比亚、刚果、库克群岛、哥斯达黎加、科特迪瓦、克罗地亚、游轮、古巴、塞浦路斯、捷克共和国、丹麦、吉布提、多米尼加”多米尼加共和国、厄瓜多尔、埃及、萨尔瓦多、赤道几内亚、爱沙尼亚、埃塞俄比亚、福克兰群岛、法罗群岛、斐济、芬兰、法国、法属波利尼西亚、法属西印度群岛、加蓬、冈比亚、格鲁吉亚、德国、加纳、直布罗陀、希腊、格陵兰、格林纳达、关岛、危地马拉、根西岛、几内亚”几内亚比绍、圭亚那、海地、洪都拉斯、香港、匈牙利、冰岛、印度、印度尼西亚、伊朗、伊拉克、爱尔兰、马恩岛、以色列、意大利、牙买加、日本、泽西岛、约旦、哈萨克斯坦、肯尼亚、科威特、吉尔吉斯共和国、老挝、拉脱维亚、黎巴嫩、莱索托、利比里亚、利比亚、列支敦士登、立陶宛、卢森堡、澳门、马其顿、马达加斯加、马拉维、马来西亚、马尔代夫、马里、马耳他、毛里塔尼亚、毛里求斯、墨西哥、摩尔多瓦、摩纳哥、蒙古、黑山、蒙特塞拉特、摩洛哥、莫桑比克、纳米比亚、尼泊尔、荷兰、荷属安的列斯群岛、新喀里多尼亚、新西兰、尼加拉瓜、尼日尔、尼日利亚、挪威、阿曼、巴基斯坦、巴勒斯坦、巴拿马、巴布亚新几内亚、巴拉圭、秘鲁、菲律宾、波兰、葡萄牙、波多黎各、卡塔尔、留尼汪、罗马尼亚、俄罗斯、卢旺达、圣皮埃尔和米克隆、萨摩亚、圣马力诺、卫星、沙特阿拉伯、塞内加尔、塞尔维亚、塞舌尔、塞拉利昂、新加坡”斯洛伐克、斯洛文尼亚、南非、韩国、西班牙、斯里兰卡、圣基茨和尼维斯、圣卢西亚、圣文森特、圣卢西亚、苏丹、苏里南、斯威士兰、瑞典、瑞士、叙利亚、台湾、塔吉克斯坦、坦桑尼亚、泰国、东帝汶、多哥、汤加、特立尼达和多巴哥、突尼斯、土耳其、土库曼斯坦“,“特克斯和凯科斯群岛”,“乌干达”,“乌克兰”,“阿拉伯联合酋长国”,“联合王国”,“乌拉圭”,“乌兹别克斯坦”,“委内瑞拉”,“越南”,“维尔京群岛(美国)”,“也门”,“赞比亚”,“津巴布韦”];
变量player1=[];
变量player2=[];
变量player3=[];
变量player4=[];
$(“#加载”)。在(“单击”,函数(){
对于(变量i=0;i<25;++i){
var randomIndex=Math.floor(Math.random()*countries.length);
player1.push(国家[随机指数]);
}
控制台日志(player1);
});
});

加载
  • 使用
    while
    循环不断迭代,直到确定不重复为止
  • 使用
    indexOf()
    确定数组中是否存在国家/地区
  • while
    循环完成后,
    推送
    (它应该是保证唯一的)

  • for(变量i=0;i<25;++i){
    var randomIndex=Math.floor(Math.random()*countries.length);
    while(player1.indexOf(国家[随机指数])>-1){
    randomIndex=Math.floor(Math.random()*countries.length);
    }
    player1.push(国家[随机指数]);
    }
    
    $(函数(){
    var国家=[“阿富汗”、“阿尔巴尼亚”、“阿尔及利亚”、“安道尔”、“安哥拉”、“安圭拉”、“安提瓜和巴布达”、“阿根廷”、“亚美尼亚”、“阿鲁巴”、“澳大利亚”、“奥地利”、“阿塞拜疆”、“巴哈马”、“巴林”、“孟加拉国”、“巴巴多斯”、“白俄罗斯”、“比利时”、“伯利兹”、“贝宁”、“百慕大”、“不丹”、“玻利维亚”、“波斯尼亚和黑塞哥维那”、“博茨瓦纳”,“巴西、英属维尔京群岛、文莱、保加利亚、布基纳法索、布隆迪、柬埔寨、喀麦隆、佛得角、开曼群岛、乍得、智利、中国、哥伦比亚、刚果、库克群岛、哥斯达黎加、科特迪瓦、克罗地亚、游轮、古巴、塞浦路斯、捷克共和国、丹麦、吉布提、多米尼加”多米尼加共和国、厄瓜多尔、埃及、萨尔瓦多、赤道几内亚、爱沙尼亚、埃塞俄比亚、福克兰群岛、法罗群岛、斐济、芬兰、法国、法属波利尼西亚、法属西印度群岛、加蓬、冈比亚、格鲁吉亚、德国、加纳、直布罗陀、希腊、格陵兰、格林纳达、关岛、危地马拉、根西岛、几内亚”几内亚比绍、圭亚那、海地、洪都拉斯、香港、匈牙利、冰岛、印度、印度尼西亚、伊朗、伊拉克、爱尔兰、马恩岛、以色列、意大利、牙买加、日本、泽西岛、约旦、哈萨克斯坦、肯尼亚、科威特、吉尔吉斯共和国、老挝、拉脱维亚、黎巴嫩、莱索托、利比里亚、利比亚、列支敦士登、立陶宛、卢森堡、澳门、马其顿、马达加斯加、马拉维、马来西亚、马尔代夫、马里、马耳他、毛里塔尼亚、毛里求斯、墨西哥、摩尔多瓦、摩纳哥、蒙古、黑山、蒙特塞拉特、摩洛哥、莫桑比克、纳米比亚、尼泊尔、荷兰、荷属安的列斯群岛、新喀里多尼亚、新西兰、尼加拉瓜、尼日尔、尼日利亚、挪威、阿曼、巴基斯坦、巴勒斯坦、巴拿马、巴布亚新几内亚、巴拉圭、秘鲁、菲律宾、波兰、葡萄牙、波多黎各、卡塔尔、留尼汪、罗马尼亚、俄罗斯、卢旺达、圣皮埃尔和米奎隆、萨摩亚、圣马力诺、卫星、沙特阿拉伯、
    
    for (var i = 0; i < 25; ++i) {
          var randomIndex = Math.floor(Math.random() * countries.length);
          while (player1.indexOf(countries[randomIndex]) > -1) {
            randomIndex = Math.floor(Math.random() * countries.length);
    
          }
          player1.push(countries[randomIndex]);
        }
    
    $(function () {
    
        var countries = ["Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Anguilla", "Antigua &amp; Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia &amp; Herzegovina", "Botswana", "Brazil", "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Cape Verde", "Cayman Islands", "Chad", "Chile", "China", "Colombia", "Congo", "Cook Islands", "Costa Rica", "Cote D Ivoire", "Croatia", "Cruise Ship", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Estonia", "Ethiopia", "Falkland Islands", "Faroe Islands", "Fiji", "Finland", "France", "French Polynesia", "French West Indies", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", "Grenada", "Guam", "Guatemala", "Guernsey", "Guinea", "Guinea Bissau", "Guyana", "Haiti", "Honduras", "Hong Kong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy", "Jamaica", "Japan", "Jersey", "Jordan", "Kazakhstan", "Kenya", "Kuwait", "Kyrgyz Republic", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Mauritania", "Mauritius", "Mexico", "Moldova", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", "Mozambique", "Namibia", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palestine", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Puerto Rico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "Saint Pierre &amp; Miquelon", "Samoa", "San Marino", "Satellite", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "South Africa", "South Korea", "Spain", "Sri Lanka", "St Kitts &amp; Nevis", "St Lucia", "St Vincent", "St. Lucia", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Timor L'Este", "Togo", "Tonga", "Trinidad &amp; Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks &amp; Caicos", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "Uruguay", "Uzbekistan", "Venezuela", "Vietnam", "Virgin Islands (US)", "Yemen", "Zambia", "Zimbabwe"];
    
        // make a copy of the countries array
        var countriesTemp = countries.slice();
    
        var player1 = [];
        var player2 = [];
        var player3 = [];
        var player4 = [];
    
        function getCountries(playerArray) {
            for (var i = 0; i < 25; ++i) {
                var randomIndex = Math.floor(Math.random() * countriesTemp.length);
                playerArray.push(countriesTemp[randomIndex]);
                countriesTemp.splice(randomIndex, 1);
            }
        }
    
        $("#load").on("click", function () {
    
            getCountries(player1);
            console.log(player1);
            getCountries(player2);
            console.log(player2);
            getCountries(player3);
            console.log(player3);
            getCountries(player4);
            console.log(player4);
    
        });
    
    
    });