Javascript 使用嵌套for循环比较两个数组

Javascript 使用嵌套for循环比较两个数组,javascript,arrays,algorithm,Javascript,Arrays,Algorithm,问题:给定两个数组x和y,x是Alice的分数,而y是Bob的分数。比较Alice和Bob之间的相似指数,对大于每个比较指数的人给予1分(如果相等,则不得分) 输入: x = [4,1,6] y = [1,1,5] 预期产出: {Alice:2, Bob: 0} 我的代码: x = [4,1,6] y = [1,1,5] results = {'Alice':0, 'Bob': 0} for (var i = 0; i < x.length; i++){ for (var j

问题:给定两个数组
x
y
x
Alice的分数,而
y
Bob的分数。比较Alice和Bob之间的相似指数,对大于每个比较指数的人给予1分(如果相等,则不得分)

输入:

x = [4,1,6]
y = [1,1,5]
预期产出:

{Alice:2, Bob: 0}
我的代码:

x = [4,1,6]
y = [1,1,5]

results = {'Alice':0, 'Bob': 0}

for (var i = 0; i < x.length; i++){
  for (var j = 0; j < y.length; j++){
    if (x[i] > y[j]){
      results['Alice'] += 1
    }else if (x[i] < y[j]){
      results['Bob'] += 1
    }
  }
}

console.log(results)
问题:


我的代码哪里出错了?

错误在于您查看了所有可能的对,第一个值来自第一个数组,第二个值来自第二个数组。但只需要比较处于相同位置的值。因此,您只需要一个循环:

x=[4,1,6]
y=[1,1,5]
结果={'Alice':0,'Bob':0}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i]console.log(results)
错误在于您查看所有可能的对,第一个值来自第一个数组,第二个值来自第二个数组。但只需要比较处于相同位置的值。因此,您只需要一个循环:

x=[4,1,6]
y=[1,1,5]
结果={'Alice':0,'Bob':0}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i]console.log(results)
问题在于不应该使用嵌套循环。您在这里所做的是将Alice的所有结果与Bob的所有结果按以下顺序进行比较:

  • 爱丽丝[0]对鲍勃[0]-爱丽丝得1分
  • 爱丽丝[0]对鲍勃[1]-爱丽丝得1分
  • 爱丽丝[0]对鲍勃[2]-鲍勃得1分
  • 爱丽丝[1]对鲍勃[0]-平局
  • 爱丽丝[1]对鲍勃[1]-平局
  • 爱丽丝[1]对鲍勃[2]-鲍勃得1分
  • 爱丽丝[2]对鲍勃[0]-爱丽丝得1分
  • 爱丽丝[2]对鲍勃[1]-爱丽丝得1分
  • 爱丽丝[2]对鲍勃[2]-爱丽丝得1分
要解决这个问题,去掉内环和
j
,只需使用
i

var x=[4,1,6]
变量y=[1,1,5]
风险值结果={
“Alice”:0,
“Bob”:0
}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i]console.log(results)
问题在于不应该使用嵌套循环。您在这里所做的是将Alice的所有结果与Bob的所有结果按以下顺序进行比较:

  • 爱丽丝[0]对鲍勃[0]-爱丽丝得1分
  • 爱丽丝[0]对鲍勃[1]-爱丽丝得1分
  • 爱丽丝[0]对鲍勃[2]-鲍勃得1分
  • 爱丽丝[1]对鲍勃[0]-平局
  • 爱丽丝[1]对鲍勃[1]-平局
  • 爱丽丝[1]对鲍勃[2]-鲍勃得1分
  • 爱丽丝[2]对鲍勃[0]-爱丽丝得1分
  • 爱丽丝[2]对鲍勃[1]-爱丽丝得1分
  • 爱丽丝[2]对鲍勃[2]-爱丽丝得1分
要解决这个问题,去掉内环和
j
,只需使用
i

var x=[4,1,6]
变量y=[1,1,5]
风险值结果={
“Alice”:0,
“Bob”:0
}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i]console.log(results)
您正在将x数组的每个元素与y数组的所有元素进行比较。为了获得预期的输出,您需要将第一个元素或数组x与数组y的第一个元素进行比较,将第二个元素与第二个元素进行比较


我希望这有帮助

您正在将x数组的每个元素与y数组的所有元素进行比较。为了获得预期的输出,您需要将第一个元素或数组x与数组y的第一个元素进行比较,将第二个元素与第二个元素进行比较

我希望这有帮助

{Alice: 5, Bob: 2}