<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> 问题: 给定一个数组例如[1,3,4,6,7] ,再给定一个目标数,例如9。 写一个算法找出两个数他们相加等于目标数,返回他们在数组中的位置。给出一个解即可,同一个数字不能使用2次。 比如[1,3,4,6,7] 目标数为9,那么需要返回[1,3]。如果目标数为20,返回null。 </body> <script type="text/javascript"> //要求 target = x + y //即 x = target - y; function func(arr,target){ var obj = {}; for(var i = 0; i < arr.length; i++){ var item = arr[i]; if(obj[item] === undefined){ var x = target - item; obj[x] = i; }else{ return [obj[item],i]; } } return null; } console.log(func([1,3,7,6,9,11],9)) </script> </html>