javascript - Un tableau prend des éléments aléatoires d'un autre tableau
PHP中文网
PHP中文网 2017-05-19 10:31:39
0
7
630

Il existe un tableau a=[4,19,23,44,56,1], créez un nouveau tableau b et b sélectionne au hasard un élément à la fois dans a jusqu'à ce qu'il soit épuisé. Implémenté en JavaScript

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous (7)
小葫芦

Vous pouvez mélanger a de manière pseudo-aléatoire, échanger les nombres dans deux positions quelconques, le faire n fois pour obtenir l'effet de mélange, puis l'attribuer à b.

Ou suivez simplement les étapes. Si l'efficacité du code n'est pas prise en compte, les opérations sur les tableaux fournies par la bibliothèque lodash peuvent rendre le code plus élégant :

var src = [4,19,23,44,56,1]; var shuffle = []; while(src.length > 0){ var random_index = Math.floor(Math.random() * src.length); shuffle.push(src[random_index]); src = src.filter(function(el, i){ return i != random_index; }); }

J'ai pensé à une meilleureméthode pseudoaléatoire, qui est directement triée de manière aléatoire, le code est plus simple et l'efficacité de fonctionnement est élevée :

var src = [4,19,23,44,56,1]; var shuffle = src; shuffle.sort(function(){ return Math.floor(Math.random() * 3) - 1; });
    仅有的幸福
    var a=[4,19,23,44,56,1]; var b=[]; var c=[0,0,0,0,0,0]; var aLen = a.length; while (c.indexOf(0)!=-1){ var randomNum = Math.floor(Math.random()*aLen); if (c[randomNum] == 0){ b.push(a[randomNum]); c[randomNum]=1 } } console.log(b);
      世界只因有你

      La mise en œuvre est la suivante :

      var a = [4,19,23,44,56,1]; function randomSort(array){ var newArray = []; for(let i = 0; i < array.length;){ let j = Math.random() * array.length; // 获取随机的下标值 j = ~~j; // 取整 let item = array.splice(j, 1)[0]; // 从原数组中剔除选中的元素 newArray.push(item); } return newArray; } randomSort(a);
        漂亮男人

        Mon idée est de parcourir ce tableau, d'obtenir des éléments aléatoires dans ce tableau, de les supprimer du tableau a et de les pousser dans le tableau b, et ainsi de suite

        var a = [4,19,23,44,56,1], aLen = a.length, b = []; // 定义删除数组中指定元素的方法 Array.prototype.removeByValue = function(val) { for(var i=0; i
          滿天的星座
          var a=[4,19,23,44,56,1]; function randomSelect(str){ var leng= a.length; var b=[]; while(leng!=0){ b.push(a.splice(Math.random()*leng,1).join()) leng--; } return b; } console.log(randomSelect(a));
            淡淡烟草味
                 
            
              曾经蜡笔没有小新

              Je ne l'écrirai pas au quatrième étage. J'en sélectionne simplement un au hasard dans le tableau, un à la fois. Après la randomisation, continuez la randomisation. ça va

                Derniers téléchargements
                Plus>
                effets Web
                Code source du site Web
                Matériel du site Web
                Modèle frontal
                À propos de nous Clause de non-responsabilité Sitemap
                Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!