数组值计数javascript

如何根据值计算数组..我有一个具有此值的数组..

var myArr = new Array(3); myArr[0] = "a"; myArr[1] = "a"; myArr[2] = "b"; 

我需要根据值来计算数组

值A的数组是2数组,值B是1

谢谢!

 var myArr = new Array(3); myArr[0] = "a"; myArr[1] = "a"; myArr[2] = "b"; function count(array, value) { var counter = 0; for(var i=0;i 

如果您对内置function感兴趣...您可以随时添加自己的function。

 Array.prototype.count = function(value) { var counter = 0; for(var i=0;i 

然后你可以像这样使用它。

 var result = myArr.count("a"); alert(result); 

哦,好吧,打败了拳,但这是我的版本。

 var myArr = new Array(3); myArr[0] = "a"; myArr[1] = "a"; myArr[2] = "b" getCountFromVal( 'a', myArr ); function getCountFromVal( val, arr ) { var total = arr.length; var matches = 0; for( var i = 0; i < total; i++ ) { if( arr[i] === val ) { matches++; } } console.log(matches); return matches; } 

现场演示: http //jsfiddle.net/CLjyj/1/

 var myArr = new Array(3); myArr[0] = "a"; myArr[1] = "a"; myArr[2] = "b"; function getNum(aVal) { num=0; for(i=0;i 

我会使用Array.filter

  var arr = ['a', 'b', 'b'] arr.filter(val => val === 'b').length // 2 

每个人都已经给出了明显的function,所以我将尝试制作另一个解决方案:

 var myArr = []; myArr[0] = "a"; myArr[1] = "a"; myArr[2] = "b"; function count(arr, value){ var tempArr = arr.join('').split(''), //Creates a copy instead of a reference matches = 0, foundIndex = tempArr.indexOf(value); //Find the index of the value's first occurence while(foundIndex !== -1){ tempArr.splice(foundIndex, 1); //Remove that value so you can find the next foundIndex = tempArr.indexOf(value); matches++; } return matches; } //Call it this way document.write(count(myArr, 'b')); 

演示