Javascript 如何计算数组中有多少对数字
我目前正在做这个作业,这让我很烦恼如何计算一个数组中有多少对数字 这是我以前试过的Javascript 如何计算数组中有多少对数字,javascript,arrays,node.js,Javascript,Arrays,Node.js,我目前正在做这个作业,这让我很烦恼如何计算一个数组中有多少对数字 这是我以前试过的 function pairNumber (n,ar) let numberOfPairs=0 for(let i =0;i<ar.length;i++){ for(let j =1;j<ar.length;j++){ if (ar[i] == ar[j]){ console.log([ar[i],
function pairNumber (n,ar)
let numberOfPairs=0
for(let i =0;i<ar.length;i++){
for(let j =1;j<ar.length;j++){
if (ar[i] == ar[j]){
console.log([ar[i], ar[j]], '<< ini isinya')
console.log(ar[i+1], ar[j+1])
numberOfPairs++
ar.splice(i,1)
ar.splice(j,1)
}
}
}
if(n%3 == 0){
numberOfPairs -= 1
return numberOfPairs
} else {
return numberOfPairs
}
}
console.log(sockMerchant(9,[10,20,20,10,10,30,50,10,20]))
console.log(sockMerchant(10,[1,1,3,1,2,1,3,3,3,3]))
正确答案应该是
3
4
对于这两种情况,有人能帮我做我一直缺少的事情吗?谢谢你 由于这是一项简单的作业,我不打算详细解释。问题似乎在循环变量初始化中。
提示:
j=i+1
我只需先对数组进行排序,然后只需将数组循环1次。最好控制你的代码
function pairNumber (n,ar){
let numberOfPairs=0
let i = 0
let j = 1
ar.sort()
for(let i = 0; i < ar.length; i++){
if(ar[i] == ar[i++]){
numberOfPairs++
i+=1
}
}
return numberOfPairs
}
函数对号(n,ar){
设numberOfPairs=0
设i=0
设j=1
ar.sort()
for(设i=0;i
要克服O(n2)的二次方法,可以取一个对象并计算发生次数
在结束时,通过只计算最低的一半值来返回总和
函数pairNumber(n,数组){
var numberOfPairs=0,
计数={};
for(设数组的v){
如果(!counts[v])counts[v]=0;
++计数[v];
}
对于(让对象计数。值(计数))numberOfPairs+=计数>>1;
返回数对;
}
log(pairNumber(9[10,20,20,10,10,30,50,10,20]))
console.log(pairNumber(10[1,1,3,1,2,1,3,3])
请添加您的try。循环时不要改变数组,还有n
的用途吗?
function pairNumber (n,ar){
let numberOfPairs=0
let i = 0
let j = 1
ar.sort()
for(let i = 0; i < ar.length; i++){
if(ar[i] == ar[i++]){
numberOfPairs++
i+=1
}
}
return numberOfPairs
}