如何在javascript中找到一个数字是否是另一个数字的排列

如何在javascript中找到一个数字是否是另一个数字的排列,javascript,Javascript,我想知道如何在Javascript中检查一个数字是否是另一个数字的排列 例: 任何帮助都将不胜感激:)下面是一段代码,它将两个数字转换为字符串,然后检查第二个数字是否包含在第一个数字的排列数组中 置换函数来自此问题:。我没有复制答案,我只是在网上提供了一段代码,可以排列字符串,并适当地引用了它。其他功能和所有的评论/解释都是我的。 var permArr=[], usedChars=[]; 函数permute(input){//返回字符串的所有排列的数组 变量i,ch,chars=input.s

我想知道如何在Javascript中检查一个数字是否是另一个数字的排列

例:


任何帮助都将不胜感激:)

下面是一段代码,它将两个数字转换为字符串,然后检查第二个数字是否包含在第一个数字的排列数组中

置换函数来自此问题:。我没有复制答案,我只是在网上提供了一段代码,可以排列字符串,并适当地引用了它。其他功能和所有的评论/解释都是我的。
var permArr=[],
usedChars=[];
函数permute(input){//返回字符串的所有排列的数组
变量i,ch,chars=input.split(“”);
对于(i=0;ilog(perm(123321))//返回true
我只需将每个输入转换为一个字符数组,然后对它们进行排序,然后检查是否相等即可。如果两个输入是彼此的排列,那么对它们进行排序将使它们处于相同的顺序,此时很容易看出它们是否相同:

函数perm(n1,n2){
返回字符串(n1).split(“”.sort().join(“”===字符串(n2).split(“”.sort().join(“”);
}
console.log(perm(12342413));//-->真的
console.log(perm(154154));//-->真的
console.log(perm(101011));//-->假的

console.log(perm(501104));//-->False
为什么第一行->
perm(12342413)
true?堆栈溢出不是代码编写服务。我们将帮助您,但我们不会为您编写代码。向我们展示你所做的尝试,并描述你在哪里陷入困境。@caramba第二个论点是第一个论点的拼音。@Amy谢谢!但是为什么第三个
perm(101011)
不也是正确的呢?看起来也像一只纳加公羊me@caramba实际上有两个问题在起作用。第一点是我所说的。第二个更微妙。仔细想想:
099===99
011===11
不要给出相同的结果(正确和错误,请尊重)。一个前导的
0
,每个数字都小于8,让JS认为这是一个八进制数<八进制中的code>011为
9
。尝试
011===9
。不要从其他问题中获取答案并将其作为自己的问题发布。要么投票结束这个问题,要么用一个链接发表评论。向下投票人:请解释为什么当你向下投票时。我个人有时真的得到了别人代码的帮助,学会了我自己无法理解的新技术。哇,我没有注意到这个答案来自另一个问题。如果你打算接受其他人的答案,请明确你在做什么,并以社区维基的形式提交你的答案,这样你就不会出现盗取代表投票作为傻瓜来结束的现象。@j08691这不是一个重复的问题,我的答案也不是他们的傻瓜。我只是借用了
permute
函数作为一个函数,它输出一个包含字符串所有排列的数组,并适当地引用了它。
perm
函数是我的。你的答案不仅没有解释任何代码在做什么,而且看起来效率很低。这很简单明了。我喜欢。
perm(1234,2413); ---> True
perm(154,154); ---> True
perm(101,011); ---> False
perm(501,104); --->False