Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找数组中等于sum-Javascript的元素索引_Javascript - Fatal编程技术网

查找数组中等于sum-Javascript的元素索引

查找数组中等于sum-Javascript的元素索引,javascript,Javascript,我试图找到数组中元素的索引等于指定的和。 我只需要2个索引 函数sumArrayHashTable(arr,sum){ var结果=[]; var hashTable={}; 对于(变量i=0;i

我试图找到数组中元素的索引等于指定的和。 我只需要2个索引

函数sumArrayHashTable(arr,sum){
var结果=[];
var hashTable={};
对于(变量i=0;i
函数sumArrayHashTable(arr,sum){
var结果=[];
对于(变量i=0;i
结果将是
[[2,4],[5,6]]
加上
[[4,2],[6,5]]
您可以从现在开始使用它


算法很简单,
O(n^2)
在数组上循环一次,然后再次找到等于9的和,使用哈希表存储索引而不是值。此外,在结果数组中推送索引:

函数sumArrayHashTable(arr,sum){
常量结果=[];
常量哈希表={};
for(设i=0;i//结果应该是[[2,4],[5,6]]
不应该
[1,2,3]
[0,2,4]
是结果集的一部分?抱歉。我只需要2个索引。编辑了这个问题。所以
i
是你的索引,不是吗?是的,我是索引
我可以打印数字,但不能打印索引
-这些索引是你的
i
我想要使用哈希表。@a2441918所以将哈希表应用于我的答案,伙计,或者指定你的问题
function sumArrayHashTable(arr, sum) {
  var result = [];
  for (var i = 0; i < arr.length; i++) {
    var test = 0;
    for (var j = 0; j < arr.length; j++) {
      if (i === j) {
        continue ;
      }
      test = arr[i] + arr[j];
      if (test === sum) {
        result.push([i, j]);
      }
    }  
  }
  return result;
}

console.log(sumArrayHashTable([5, 2, 6, 1, 3, 9, 0], 9));