【问题标题】:how can I make a function in JS that gives me [1, 2, 3, 4, 5, 6] = [4, 1, 2, 5, 3, 6]我怎样才能在 JS 中创建一个函数,给我 [1, 2, 3, 4, 5, 6] = [4, 1, 2, 5, 3, 6]
【发布时间】:2021-01-11 17:40:00
【问题描述】:

它应该添加所有不存在的数组,创建的每个新数组都包含 6 个数字,每个数字的范围在 1 到 42 之间,然后将其推送到现有数组希望保存新数组,其中数字的顺序每个数组都无关紧要,同时如果我有 [[1, 2, 3, 4, 5, 6]] 它不应该像这样推送一个新数组 [[1, 2, 3, 4, 5, 6] [1, 2、3、4、6、5]]

let num = [[1, 2, 3, 4, 5, 6]];
function creatList(){
  for(let f=0; f < 100; f++){
  {
      for(let i = 0; i < 6; i++){
        var newnum = [];
        var y = Math.floor(Math.random() * 42) +1;
        newnum.push(y);
      }
      if(
        newnum[0] == newnum[1] || newnum[0] == newnum[2] || newnum[0] == newnum[3] || newnum[0] == newnum[4] || newnum[0] == newnum[5] && newnum[1] == newnum[1] || newnum[1] == newnum[2] || newnum[1] == newnum[3] || newnum[1] == newnum[4] || newnum[1] == newnum[5] && newnum[2] == newnum[1] || newnum[2] == newnum[2] || newnum[2] == newnum[3] || newnum[2] == newnum[4] || newnum[2] == newnum[5] && newnum[3] == newnum[1] || newnum[3] == newnum[2] || newnum[3] == newnum[4] || newnum[3] == newnum[5] || newnum[4] == newnum[1] || newnum[4] == newnum[2] || newnum[4] == newnum[3] || newnum[4] == newnum[5] && newnum[5] == newnum[1] || newnum[5] == newnum[2] || newnum[5] == newnum[3] || newnum[5] == newnum[4]) newnum=[];

      for(let i = 0; i < num.length;  i++) {
      if(
        newnum[0] == num[i][1] || newnum[0] == num[i][2] || newnum[0] == num[i][3] || newnum[0] == num[i][4] || newnum[0] == num[i][5] && 
        newnum[1] == num[i][1] || newnum[1] == num[i][2] || newnum[1] == num[i][3] || newnum[1] == num[i][4] || newnum[1] == num[i][5] && 
        newnum[2] == num[i][1] || newnum[2] == num[i][2] || newnum[2] == num[i][3] || newnum[2] == num[i][4] || newnum[2] == num[i][5] && 
        newnum[3] == num[i][1] || newnum[3] == num[i][2] || newnum[3] == num[i][4] || newnum[3] == num[i][5] && 
        newnum[4] == num[i][1] || newnum[4] == num[i][2] || newnum[4] == num[i][3] || newnum[4] == num[i][5] && 
        newnum[5] == num[i][1] || newnum[5] == num[i][2] || newnum[5] == num[i][3] || newnum[5] == num[i][4]) num.push([]);
      else num.push(newnum);   
     }
      
    }
  }
  num.push(newnum);
  console.log(num);
}
creatList();
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="/jsTest.js"></script>
</head>
<body>
    
</body>
</html>

编码我认为这是一个有点高级的问题

【问题讨论】:

  • 请添加你想要的。你想要一个随机数组还是数组的所有排列?
  • 我投票结束这个问题,因为这个问题没有任何意义
  • indexOf() 或包含
  • i want this function to create all the possible arrays generated of 6 digits in range of 1 to 42how can I make a function in JS that gives me [1, 2, 3, 4, 5, 6] = [4, 1, 2, 5, 3, 6] 非常不同,所以我不确定你在问什么
  • 欢迎来到 StackOverflow!请尽量使您的问题更清楚,如果可能的话,请举例说明您想要实现的目标

标签: javascript function loops


【解决方案1】:

您可以对数组进行排序,使用JSON.stringify 对其进行序列化,然后将第一个数组与所有其他数组进行比较。

/**
 * Checks if every array is equal to one another
 * @param {Function} compFn - comparator function
 * @param {...Array} arr - zero or more arrays to compare
 * return {boolean} Returns false if the argument count is < 2,
          else each subsequent array is compared to the first
 */
const arraysEqual = (compFn, ...arr) => arr.length < 2
  ? false
  : arr.map(x => JSON.stringify(x.sort(compFn)))
    .slice(1).every((x, i, a) => x === a[0]);
  
console.log(arraysEqual(undefined, [1, 2, 3, 4, 5, 6], [4, 1, 2, 5, 3, 6]));

【讨论】:

    猜你喜欢
    • 2023-02-02
    • 2021-05-30
    • 1970-01-01
    • 2022-10-08
    • 2022-06-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2011-09-08
    相关资源
    最近更新 更多