且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在javascript数组中找到相等元素的数量

更新时间: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);

jsFiddle


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);

jsFiddle