我有一个数组:
[1, 2, 3, 5, 2, 8, 9, 2]
我想知道数组中有多少个2。
在JavaScript中,没有for循环的最优雅的方法是什么?
我有一个数组:
[1, 2, 3, 5, 2, 8, 9, 2]
我想知道数组中有多少个2。
在JavaScript中,没有for循环的最优雅的方法是什么?
当前回答
我相信你们在寻找的是功能方法
const arr = ['a', 'a', 'b', 'g', 'a', 'e'];
const count = arr.filter(elem => elem === 'a').length;
console.log(count); // Prints 3
Elem === 'a'是条件,用你自己的替换它。
其他回答
在核心级别文件中为Array类创建一个新方法,并在整个项目中使用它。
// say in app.js
Array.prototype.occurrence = function(val) {
return this.filter(e => e === val).length;
}
在项目的任何地方使用这个-
[1, 2, 4, 5, 2, 7, 2, 9].occurrence(2);
// above line returns 3
你可以在JavaScript数组中使用length属性:
var myarray = [];
var count = myarray.length;//return 0
myarray = [1,2];
count = myarray.length;//return 2
我相信你们在寻找的是功能方法
const arr = ['a', 'a', 'b', 'g', 'a', 'e'];
const count = arr.filter(elem => elem === 'a').length;
console.log(count); // Prints 3
Elem === 'a'是条件,用你自己的替换它。
有很多方法可以找到答案。我认为最简单的方法是使用es6中引入的数组过滤器方法。
function itemCount(array, item) {
return array.filter(element => element === item).length
}
const myArray = [1,3,5,7,1,2,3,4,5,1,9,0,1]
const items = itemCount(myArray, 1)
console.log(items)
如果您正在使用lodash或下划线_。countBy方法将提供一个由数组中的每个值键定的总计的对象。如果你只需要计算一个值,你可以把它变成一行代码:
_.countBy(['foo', 'foo', 'bar'])['foo']; // 2
这也适用于数字数组。示例中的一行代码是:
_.countBy([1, 2, 3, 5, 2, 8, 9, 2])[2]; // 3