刚刚开始学习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])
}
答案 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
属性进行计数。
var v = [1, 3, 5, 4, 3, 0, 0, 1, 1];
console.log((v.filter(x => x === 1)).length);
&#13;
答案 2 :(得分:1)
关闭!您需要做的是初始化一个count变量,然后迭代数组。在每个索引处,检查元素是否与数字匹配。如果是,则递增计数
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;
答案 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,而您不会这样做。
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;
这是另一种(很多)技术,但是这个技术完全取消了循环,if
测试和计数器。它还需要算法中的数组,这反过来可以使代码更容易理解:
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;