在数组中计算相同的值编号

gra*_*per 8 javascript arrays indexing

我正在进行一项挑战,我必须在数组中找到最小值,并且如果数字出现多次,则能够计算它.我想我的格式有所下降,但它给了我一个计数而不是数字(4而不是3).谁能给我一些提示?感谢任何帮助!

function small(array) {
  var smallest = array[0];
  var count = 0;
  for(var i = 0; i < array.length; i++) {
    if(array[i] < smallest) {
      smallest = array[i];
    }
    if(smallest===array[i]) {
      count++;
    }
  }
  return count;
}

small([5,6,2,2,2]);
Run Code Online (Sandbox Code Playgroud)

Kap*_*aps 4

每当您获得新的最小值时,就需要重置。

为什么需要将计数重置为 0 而不是 1 ?

因为条件正在检查最小 === arr[i],意味着您正在检查现在存储的相同元素

function small(array){
    var smallest = array[0];
    var count = 0;
    for(var i = 0; i < array.length; i++) {
        if(array[i] < smallest) {
            smallest = array[i];
            count = 0;
        }
        if(smallest===array[i]) {
            count++;
        }
    }
    return count;
 }
 console.log(small([5,6,2,2,2]));
Run Code Online (Sandbox Code Playgroud)