【问题标题】:How to output the number of occurrences in array using JavaScript [duplicate]如何使用JavaScript输出数组中出现的次数[重复]
【发布时间】:2015-10-13 04:23:30
【问题描述】:

这里的目标是计算以下数组中出现的次数: [2、3、7、9、7、3、2]

例如,如果用户输入 7,则输出应为 [2, 4],因为 7 出现在这两个索引处。我到目前为止的样子是这样的

    var arr1 = [2,3,7,9,7,3,2];
    printArray(arr1);
    var indexOfNum = findValueInArray(arr1, num);

    if (indexOfNum === -1) {
    console.log('%d was not found in the array of random integers.', num);
   }
    else {
    console.log('%d was found in the array of random integers at index %d',num, indexOfNum);
}

我的结果是:

    arr[0] = 2
    arr[1] = 3
    arr[2] = 7
    arr[3] = 9
    arr[4] = 7
    arr[5] = 3
    arr[6] = 2
    7 was found in the array of random integers at index 2

我知道我很接近,但我不确定我到底忽略了什么。谢谢各位!

【问题讨论】:

  • 请在提出新问题之前使用搜索。

标签: javascript arrays


【解决方案1】:

试试这个,

var arr1 = [2,3,7,9,7,3,2];

function occurance(array,element){
  var counts = [];
    for (i = 0; i < array.length; i++){
      if (array[i] === element) {  
        counts.push(i);
      }
    }
  return counts;
}

occurance(arr1, 2); //returns [0,6]
occurance(arr1, 7); //returns [2,4]

【讨论】:

  • 如果你为元素传入 2,为什么当数组末尾还有另一个 2 时,它只会产生 [0] 作为结果?
  • @MarkC。这是我这边的一个错误。我已经改变了答案。
【解决方案2】:
function findValueInArray(arr, num) {
    var r = [];
    for(i = 0; i < arr.length; i++) (arr[i] == num) ? r.push(i) : '';
    return r;
}

function printArray(num, indexOfNum) {
    console.log('%d was found ... index %s', num, indexOfNum.join(', '));
}

var arr = [2,3,7,9,7,3,2];
var num = 7;
var indexOfNum = findValueInArray(arr, num);
printArray(num, indexOfNum);

【讨论】:

    【解决方案3】:

    你可以这样做:

    var arr = [2, 3, 7, 9, 7, 3, 2];
    
    function occurrences(x, a) {
      var pos = [];
      a.forEach(function(val, i) {
        if (x === a[i]) {
          pos.push(i);
        }
      });
    
      return pos;
    }
    
    console.log(occurrences(7, arr)); // [2, 4]
    console.log(occurrences(5, arr)); // []
    console.log(occurrences(2, arr)); // [0, 6]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      相关资源
      最近更新 更多