前端开发也要搞算法。

给一个整数数组和一个目标数,返回数组中两个数的坐标,这两个数的和需等于目标数。假设给的数组和目标数正好有一个正确的解。

比如:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

JavaScript 解决此题的代码:

function twoSum(nums, target) {
    var obj = {};
    var res = [];

    nums.forEach(function(n, i, arr) {
        obj[n] = i;
    });

    nums.some(function(n, i, arr) {
        var val = target - n;

        if (val in obj) {
            res[0] = i;
            res[1] = obj[val];

            if (res[0] != res[1]) {
                return true;
            }
        }
    });

    return res;
}