使用'for'循环计算特定数字在数组中出现的次数

时间:2017-01-30 16:35:45

标签: javascript arrays for-loop

刚刚开始学习JS,并对循环进行了测试,并没有成功找到答案: 我想看看数字1在arrray中出现的次数。 我能做的就是在数组中出现1时得到一个真实的答案。 自上周三以来一直试图解决这个问题。 谢谢!

var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];

count = 1;

for (var i = 0; i < v.length; i++){

      console.log (count == v[i])

}

5 个答案:

答案 0 :(得分:3)

如果要计算值在数组中出现的次数,首先需要初始化循环外的变量(如果在循环中初始化,则该值将在该循环的每次迭代时重置) 。 其次,您需要一个您将检查的条件语句,在这种情况下,如果值等于1。作为一个循环,在数组中有一个以上的值,我们可以得到当前索引的值,如v[i](你正确地做了)。现在您需要加一个计数器,counter++counter = counter + 1;相同。现在我在下面使用的if语句有===这是一个等于运算符,它还检查两个值是否属于同一类型。

  var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];    
    var count = 0;

        for (var i = 0; i < v.length; i++){
            if(v[i] === 1){
                count++;
            }
        }
          console.log (count);

答案 1 :(得分:2)

您可以使用filter方法返回具有指定条件的数组,然后您可以使用length属性进行计数。

&#13;
&#13;
var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];
console.log((v.filter(x => x === 1)).length);
&#13;
&#13;
&#13;

答案 2 :(得分:1)

关闭!您需要做的是初始化一个count变量,然后迭代数组。在每个索引处,检查元素是否与数字匹配。如果是,则递增计数

&#13;
&#13;
var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];

var count = 0;
var number = 1;

for (var i = 0; i < v.length; i++){
    if (v[i] == number) {
        count++;
    }
}

console.log(count);
&#13;
&#13;
&#13;

答案 3 :(得分:1)

你必须增加计数,你只是检查计数是否等于当前项目

var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];

count = 0;

for (var i = 0; i < v.length; i++){
    var cur = v[i];          // < gets the current item
    if (cur == 1)            // < If the current item is 1
        count += 1;          // < Then increase the count by 1
    console.log (count);     // < Log what the count is

}

答案 4 :(得分:0)

您可以使用各种技术执行此操作,但在您的情况下,您需要在循环时实际检查数组值为1,而您不会这样做。

&#13;
&#13;
var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];

// Don't assume that there are any occurrences of 1 in the array
count = 0;

for (var i = 0; i < v.length; i++){
  // Test to see if the current array item is 1 and, if so, increment the counter
  
  // The "long-hand" way:
  //if(v[i] === 1){
  //  count++;
  //}
  
  // Above "if" could also be written using JavaScript's "ternary" operator as this:
  count = (v[i] === 1) ? ++count : count;
}

// The report should be after the loop has completed.
console.log ("1 appears in the array " + count + " times.")
&#13;
&#13;
&#13;

这是另一种(很多)技术,但是这个技术完全取消了循环,if测试和计数器。它还需要算法中的数组,这反过来可以使代码更容易理解:

&#13;
&#13;
var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];

// Turn array into string and (using regular expressions) remove any char that is not 1
var s = v.join("").replace(/[0, 2-9]+/g, "");

// Just check the length of the string after removing non-1 chars:
console.log ("1 appears in the array " + s.length + " times.");
&#13;
&#13;
&#13;