更新时间:2023-09-02 19:31:46
在这里,您使用了一个循环,并使用之前的值检查了当前值。但你需要两个循环。
第一个会挑选一个值。第二个将把挑选的价值与其他所有价值相匹配。我使用了找到的
标志来检查是否已经找到重复值。试试这种方式,
var numberOfSameElements = 0;
var found = false;
var arr = [red,blue,green,red,red,gray]; (var j = 0; j if(arr [0]; i i] === arr [j]&& i!= j){
if(!found){
numberOfSameElements ++;
found = true;
}
}
}
found = false;
}
console.log(numberOfSameElements);
I'm new to JavaScript so please help me on this problem: I have array and I want to get the number of same values. My array is:
var arr = ["red", "blue", "green", "red", "red", "gray"];
I want to output 3 because I have 3 elements red.
This is what I have done so far:
var numberOfSameElements = 0;
var arr = ["red", "blue", "green", "red", "red", "gray"];
for(var i = 1 ; i <arr.length;i++){
if(arr[i] === arr[i-1]){
numberOfSameElements++;
}
}
console.log(numberOfSameElements);
I keep getting 1. Please tell me what I am doing wrong. Thank you so much!
Here you've used one loop and checked your current value with it's previous value. But you need actually two loops.
First one will pick a value. And second one will match the picked value with all others. I've used a found
flag that checks if a duplicate value has already been found or not. Try this way,
var numberOfSameElements = 0;
var found = false;
var arr = ["red", "blue", "green", "red", "red", "gray"];
for(var i = 0 ; i <arr.length;i++){
for(var j = 0; j < arr.length; j++){
if(arr[i] === arr[j] && i != j){
if(!found){
numberOfSameElements++;
found = true;
}
}
}
found = false;
}
console.log(numberOfSameElements);