国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Javascript – Ein Array übernimmt zuf?llige Elemente aus einem anderen Array
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-05-19 10:31:39
0
7
841

Es gibt ein Array a = [4,19,23,44,56,1], erstellen Sie ein neues Array b, und b w?hlt zuf?llig jeweils ein Element aus a aus, bis es ersch?pft ist. In JavaScript implementiert

PHP中文網(wǎng)
PHP中文網(wǎng)

認證高級PHP講師

Antworte allen(7)
小葫蘆

可以用偽隨機對a進行洗牌,取任意兩個位置的數(shù)字進行交換,如此進行n次達到洗牌效果,然后賦值給b。

或者直接按照步驟來,如果不考慮代碼效率的話,lodash庫提供的數(shù)組操作可以使代碼更優(yōu)雅:

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;
    });
}

想到個更好的隨機方法,直接隨機排序,代碼更簡潔,運行效率高:

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);
世界只因有你

實現(xiàn)如下:

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]; // 從原數(shù)組中剔除選中的元素
        newArray.push(item);
  }
  return newArray;
}
randomSort(a);
漂亮男人

我的思路是遍歷這個數(shù)組,獲取這個數(shù)組中的隨機元素,從a數(shù)組中刪除同時push進b數(shù)組,然后類推下去

var a = [4,19,23,44,56,1],
    aLen = a.length,
    b = [];
    
// 定義刪除數(shù)組中指定元素的方法
Array.prototype.removeByValue = function(val) {
  for(var i=0; i<this.length; i++) {
    if(this[i] == val) {
      this.splice(i, 1);
      break;
    }
  }
}

// 遍歷a數(shù)組
for(var i=0; i<aLen; i++){
    var cur = a[Math.floor(Math.random()*a.length)]; //獲取隨機的元素
    a.removeByValue(cur);    // 從a中刪除
    b.push(cur);            // 添加進b
}

console.log(b)
滿天的星座
   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));
淡淡煙草味
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script>
      //有一個數(shù)組a=[4,19,23,44,56,1],新建一個數(shù)組b,b從a中一次隨機選取一個元素,取完為止。用JavaScript實現(xiàn)
      var a = [4,19,23,44,56,1];
      var b = [];

      function findInArr(num, arr){
        for(var i=0; i<arr.length; i++){
          if(num == arr[i]){
            return true;
          }
        }
        return false;
      }

      function rnd(m,n){
        return m + Math.floor(Math.random()*(n-m));
      }

      function randomPass(arr){
        var len = arr.length;
        var rndIndex = rnd(0,len-1);
        console.log(rndIndex);
        var temp = arr[rndIndex];
        if(!findInArr(temp,b)){
          b.push(temp);
          arr.splice(rndIndex,1);
          if(arr.length > 0){
            randomPass(arr);
          }
        }
      }

      randomPass(a);
      console.log(b); // [44, 56, 19, 23, 4, 1] (每次隨機)
      console.log(a); // []

    </script>
  </body>
</html>
曾經(jīng)蠟筆沒有小新

說下四樓不寫了 就是從數(shù)組一里每次隨機一個 隨機出來之后從數(shù)組里剔除 繼續(xù)隨機 吧剔除的壓入新數(shù)組里就ok了

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage