javascript - 我如何显示输入的结果及其排列?

标签 javascript arrays input permutation

我需要在最多 5 个字符的输入中显示输入值的所有排列

我制作了这个 Codepen 示例,但效果不佳

https://codepen.io/alonsoct00/pen/WBeXEp

我的脚本:

<script>
     function permute(a) {
     if (a.length < 5) return [a];
     var c, d, b = [];
     for (c = 0; c < a.length; c++) {
      var e = a.splice(c, 1),
        f = permute(a);
      for (d = 0; d < f.length; d++) b.push([e].concat(f[d]));
      a.splice(c, 0, e[0])
      }
     return b

    }

   function permuteval() {
   var txtval = document.getElementById('permute_this').value;
   document.getElementById('results').innerHTML = 
   (permute([txtval]).join("\n"));

    }
</script>

谢谢

最佳答案

尝试使用展开运算符:

document.getElementById('results').innerHTML = (permute([...txtval]).join("\n"));

不确定这是否是您正在寻找的确切输出

https://codepen.io/jfitzsimmons/pen/RmNZGP

此外,我喜欢这段用于排列的代码:

const permutations = arr => {
  if (arr.length <= 2) return arr.length === 2 ? [arr, [arr[1], arr[0]]] : arr;
  return arr.reduce(
    (acc, item, i) =>
      acc.concat(
        permutations([...arr.slice(0, i), ...arr.slice(i + 1)]).map(val => [item, ...val])
      ),
    []
  );
};
EXAMPLES
permutations([1, 33, 5]); // [ [ 1, 33, 5 ], [ 1, 5, 33 ], [ 33, 1, 5 ], [ 33, 5, 1 ], [ 5, 1, 33 ], [ 5, 33, 1 ] ]

https://30secondsofcode.org/

关于javascript - 我如何显示输入的结果及其排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56009997/

相关文章:

javascript - Firebase数据重复问题

ios - 根据 Swift 中的空值过滤数组

Java从给定的数组列表动态生成各种字段类型

jquery - 如何在 select2 jquery 中的标记中设置默认值

javascript - React Native Parse Firestore 时间戳

javascript - 如何使用 testEnvironment 作为 NodeEnvironment 启动快速服务器?

javascript - 在 div 而不是输入/文本区域时无法通过 POST 发送内容

javascript - 从 Google geocode API 返回 Neighborhood?

C - 从大字符串中的标准输入一次读取一个字符

reactjs - 如何通过输入 ReactJS 中的单词进行检测