Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两个整数之间的相同数字集合_Javascript_Regex_Numbers - Fatal编程技术网

Javascript 两个整数之间的相同数字集合

Javascript 两个整数之间的相同数字集合,javascript,regex,numbers,Javascript,Regex,Numbers,我试图检查两个整数是否包含相同的数字集合 equivalent(123, 321) // -> true equivalent(413, 1453) // -> false equivalent(2002, 2200) // -> true equivalent(542, 545) // -> false 我从以下内容开始了该功能: function equivalent(a,b) { let stringA = a.toString().match(/[1-9

我试图检查两个整数是否包含相同的数字集合

equivalent(123, 321) // -> true
equivalent(413, 1453) // -> false
equivalent(2002, 2200) // -> true
equivalent(542, 545) // -> false
我从以下内容开始了该功能:

function equivalent(a,b) {
    let stringA = a.toString().match(/[1-9]/g);
    let stringB = b.toString().match(/[1-9]/g);
}
我不知道是否要使用哈希映射来映射每个数字和增量,但是我无法检查两个对象是否相等


哪种方法是最佳的(就空间/时间复杂性而言),哪种方法最容易阅读,或者两者兼而有之?谢谢



编辑:很抱歉没有详细说明我的问题。我想检查两个整数是否包含相同的数字和相同数量的数字。

使用一个简单的循环,从第二个字符串中删除每个字符,然后检查第二个字符串是否为空(空表示两个字符串包含相同数量的数字)

console.log(
等效值(123321),//->true
等效值(4131453),//->false
等效值(2002年,2200年)/->真实值
);
等效函数(a,b){
//转换成字符串
a=a.toString();
b=b.toString();
//迭代每个字符
对于(变量i=0;i}
转换为字符串、拆分、排序、合并并比较

功能等效物(a、b){
返回a.toString().split(“”).sort().join(“”===b.toString().split(“”.sort().join(“”);
}
控制台日志(相当于(123321));
控制台日志(相当于4131453);

console.log(相当于(2002200))您可以对图形进行排序并比较连接的字符串

功能等效物(a、b){
返回[..a.toString()].sort().join(“”)==[..b.toString()].sort().join(“”);
}
控制台日志(相当于(123321));
控制台日志(相当于4131453);

console.log(相当于(2002200))
会不会
.toString().length
更容易些?如果我理解正确,除了长度相同之外,它们中的数字也应该是相同的,对吗?如果总是正整数(即,只有数字,没有逗号、小数点或负号),@j08691的建议是正确的。Ooooh。我明白你的意思,@KapilKashyap。所以“123”和“124”应该是
false
,因为数字不一样。哇!令人困惑的问题。@PranavCBalan,你为什么这么认为?这个问题包含
let
,所以这是一个ES6问题。
扩展运算符在你的方法中占了什么作用?谢谢。@kdizzle,它将字符串扩展为单个字符数组。