Javascript node.js |将一个数组中的元素插入另一个数组中的随机位置

Javascript node.js |将一个数组中的元素插入另一个数组中的随机位置,javascript,arrays,node.js,Javascript,Arrays,Node.js,假设我有两个数组: let arr1 = [1,2,3,4,5] ; let arr2 = ['a' , 'b', 'c'] ; 我想在arr1中随机插入arr2的元素。arr2的顺序并不重要,但arr1的顺序很重要。目标是获得以下结果: let mergedArray = [1 , 2, 'b', 3 , 'c',4, 'a',5] ; 如何实现这一点?使用我的答案中的函数,我们可以在两个数组上使用一个shuffle函数,我们将其与concat合并: 函数洗牌(数组){ var curr

假设我有两个数组:

let arr1 = [1,2,3,4,5] ;
let arr2 = ['a' , 'b', 'c'] ;
我想在arr1中随机插入arr2的元素。arr2的顺序并不重要,但arr1的顺序很重要。目标是获得以下结果:

let mergedArray = [1 , 2, 'b', 3 , 'c',4, 'a',5] ;

如何实现这一点?

使用我的答案中的函数,我们可以在两个数组上使用一个shuffle函数,我们将其与
concat
合并:

函数洗牌(数组){
var currentIndex=array.length,temporaryValue,randomIndex;
//虽然还有一些元素需要洗牌。。。
而(0!==currentIndex){
//选择剩余的元素。。。
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
//并将其与当前元素交换。
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
}
设arr1=[1,2,3,4,5];
设arr2=[“a”,“b”,“c”];
让mergedArray=shuffle(arr1.concat(arr2));

console.log(mergedArray)使用我的答案中的函数,我们可以在两个数组上使用一个shuffle函数,我们将其与
concat
合并:

函数洗牌(数组){
var currentIndex=array.length,temporaryValue,randomIndex;
//虽然还有一些元素需要洗牌。。。
而(0!==currentIndex){
//选择剩余的元素。。。
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
//并将其与当前元素交换。
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
}
设arr1=[1,2,3,4,5];
设arr2=[“a”,“b”,“c”];
让mergedArray=shuffle(arr1.concat(arr2));
console.log(mergedArray)
让arr1=[1,2,3,4,5];
设arr2=['a','b','c'];
变量len1=arr1.length
var mergedArr=arr1.slice()
对于(变量i=0;i
让arr1=[1,2,3,4,5];
设arr2=['a','b','c'];
变量len1=arr1.length
var mergedArr=arr1.slice()
对于(变量i=0;i
我的简单方法:混合arr2,然后将arr2的每个项目插入arr1随机化

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function shuffleArray(array) {
  for (var i = array.length - 1; i > 0; i--) {
      var j = Math.floor(Math.random() * (i + 1));
      var temp = array[i];
      array[i] = array[j];
      array[j] = temp;
  }
}

function shuffle(arr1, arr2) {
  // Randomize arr2 element order in-place.
  shuffleArray(arr2);


  arr2.forEach(item => {
    // Randomize index of arr1
    let i = getRandomInt(0, arr1.length);
    // Insert item to  arr1
    arr1.splice(i, 0, item);
  });
  return arr1;
}

let arr1 = [1, 2, 3, 4, 5];
let arr2 = ["a", "b", "c"];

let result = shuffle(arr1.concat(arr2));

console.log(result);

我的简单方法是:混合arr2,然后将arr2的每个项目插入arr1随机化

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function shuffleArray(array) {
  for (var i = array.length - 1; i > 0; i--) {
      var j = Math.floor(Math.random() * (i + 1));
      var temp = array[i];
      array[i] = array[j];
      array[j] = temp;
  }
}

function shuffle(arr1, arr2) {
  // Randomize arr2 element order in-place.
  shuffleArray(arr2);


  arr2.forEach(item => {
    // Randomize index of arr1
    let i = getRandomInt(0, arr1.length);
    // Insert item to  arr1
    arr1.splice(i, 0, item);
  });
  return arr1;
}

let arr1 = [1, 2, 3, 4, 5];
let arr2 = ["a", "b", "c"];

let result = shuffle(arr1.concat(arr2));

console.log(result);
这将对你有帮助

let arr1 = [1,2,3,4,5] ;
let arr2 = ['a' , 'b', 'c'] ;


 arr2.map((values,i)=>{
   var rand = Math.floor(Math.random() * (arr1.length)) + 1;
     arr1.splice(rand, 0,values);

 })
 console.log(arr1)
这将对你有帮助

let arr1 = [1,2,3,4,5] ;
let arr2 = ['a' , 'b', 'c'] ;


 arr2.map((values,i)=>{
   var rand = Math.floor(Math.random() * (arr1.length)) + 1;
     arr1.splice(rand, 0,values);

 })
 console.log(arr1)
varone=[1,2,3,4];
变量二=['a','b','c'];
var三=一。concat(二);
var四=[];
var检验=3.5倍长度;
对于(i=0;i
varone=[1,2,3,4];
变量二=['a','b','c'];
var三=一。concat(二);
var四=[];
var检验=3.5倍长度;

对于(i=0;i)此解决方案生成错误结果。此解决方案生成错误结果。