Я нахожусь в середине моего сеанса JavaScript. Найдите этот код в моем упражнении по кодированию. Я понимаю логику, но я не получил это условие [nums [x]].
function twoSum(nums, target_num) {
var map = [];
var indexnum = [];
for (var x = 0; x < nums.length; x++)
{
if (map[nums[x]] != null)
// what they meant by map[nums[x]]
{
index = map[nums[x]];
indexnum[0] = index+1;
indexnum[1] = x+1;
break;
}
else
{
map[target_num - nums[x]] = x;
}
}
return indexnum;
}
console.log(twoSum([10,20,10,40,50,60,70],50));
Я пытаюсь получить пар элементов из заданного массива, сумма которого равна определенному целевому номеру. Я написал ниже код.
function arraypair(array,sum){
for (i = 0;i < array.length;i++) {
var first = array[i];
for (j = i + 1;j < array.length;j++) {
var second = array[j];
if ((first + second) == sum) {
alert('First: ' + first + ' Second ' + second + ' SUM ' + sum);
console.log('First: ' + first + ' Second ' + second);
}
}
}
}
var a = [2, 4, 3, 5, 6, -2, 4, 7, 8, 9];
arraypair(a,7);
Есть ли оптимизированный способ, чем выше двух решений? Может ли кто-нибудь объяснить первое решение, что именно отображает [nums [x]] это условие указывает на?