js 数组里面任意两个数的和与目标值

<!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>

  

原文地址:https://www.cnblogs.com/muamaker/p/9368553.html