In questo articolo vedremo come comparare la somma di due elementi di un array con un totale in JavaScript.

Dobbiamo risolvere il seguente esercizio: dato un array di numeri interi e un totale, occorre restituire un array contenente i primi due numeri contigui che, sommati, corrispondono al totale.

È un'utile occasione per riscoprire il ciclo while. Si tratta di incrementare due volte il contatore interno, la prima per ottenere il numero corrente e la seconda per il numero che segue.


'use strict';

const twoSum = (nums = [], target = 0) => {
    if(nums.length === 0) {
        return [];
    }
    if(nums.length === 1) {
        return nums[0] === target ? [0] : [];
    }

    const output = [];
    let i = -1;

    while(i < nums.length - 1) {
        i++;
        let sum = nums[i] + nums[i + 1];
        if(sum === target) {
            output.push(i);
            output.push(i + 1);
            break;
        }
    }

    return output;
};

console.log(twoSum([2,7,11,15], 9));