[Leetcode Question](https://leetcode.com/problems/two-sum/)

I have analyzed the answer for the Leetcode question and am asking for whether my reasoning is correct. I tried analyzing when `num = 2` and when `num = 7`. The analyses are separated by //.

```
function twoSum(nums, target) {
  var result = []
  nums.forEach(function(num, i) {
    var diff = target - num
    var k = nums.indexOf(diff)
    if (k > -1 && k !== i) {
       result[0] = i
       result[1] = k
    }
  })
  return result
}
twoSum([2,7,11,15], 9)

```

```
var diff = target - num

```

For 2, diff = 9 - 2 = 7. // For 7, diff = 9 - 7 = 2

```
var k = nums.indexOf(diff)

```

indexOf(7) = 1 → k = 1. // indexOf(2) = 0 → k = 0.

```
if (k > -1 && k !== i)

```

1 > -1 && 1 !== 0. // 0 > -1 && 0 !== 1.

```
result[0] = i

```

result[0] = 0. // result[0] = 1

```
result[1] = k

```

result[1] = 1. // result[1] = 0

```
return result

```

[0,1] // [1, 0]

So the answer is supposed to be [0,1] but when `num = 7` I get [1,0] and was wondering why the function is accepted as the correct answer when I get both [0,1] and [1,0].