var twoSum = function (nums, target) {
  const hash = {};
 
  for (let i = 0; i < nums.length; i++) {
    const val = target - nums[i];
 
    if (val in hash) {
      return [hash[val], i];
    } else {
      hash[nums[i]] = i;
    }
  }
};- Создаем хэш-мапу
- Проходимся по массиву nums
- Для каждого элемента проверяем, есть ли в hashMap такое число, которое в сумме с текущим элементом даст target
- Если да -- вернуть индексы текущего элемента и элемента из hashMap
- Если нет -- то добавим элемент в hashMap
 
- Если все элементы пройдены, то вернуть пустой массив, так как пара чисел не найдена
Этот алгоритм работает за линейное время O(n), где n - количество элементов во входном массиве nums.