在JS中,有时我们需要查询某个数组中指定元素的个数,并没有方法可以直接统计指定元素个数的,我们可以借助JS数组提供的filter()方法来间接实现。先来看看这个方法,代码如下:

<script>
	var myArrays = new Array();
	for(var i=1;i<=10;i++) {
		myArrays.push(i);
	}
	console.log(myArrays);

    // filter方法过滤,返回数组,并不会影响原数组
	var newArrays = myArrays.filter(function(res){
		return res == 5;
	});
	console.log(newArrays);
</script>

控制台:
在这里插入图片描述
可以看到,filter()方法会返回一个数组,这个数组中只包含满足指定条件的元素,那么统计一个数组中某元素的个数,我们可以这样写:

<script>
	var myArrays = new Array(1,4,5,1,41,4,1,54,123,1);
	console.log(myArrays);

    // 自定义方法,统计数组中指定元素个数
	function countNum(arr,res) {
		var newArrays = arr.filter(function(item){
			return item == res;
		});
		return newArrays.length;
	}
	console.log("数组长度:" + myArrays.length);
	console.log("原数组中1的个数:" + countNum(myArrays,1));
	console.log("原数组中4的个数:" + countNum(myArrays,4));
	console.log("原数组中5的个数:" + countNum(myArrays,5));
	console.log("原数组中41的个数:" + countNum(myArrays,41));
	console.log("原数组中54的个数:" + countNum(myArrays,54));
	console.log("原数组中123的个数:" + countNum(myArrays,123));
</script>

查看控制台:
在这里插入图片描述
输出结果是没问题的,原理实际上是将原数组中的指定元素加入到一个新的数组中,然后统计这个数组的容量长度来实现的,比较简单,记录一下。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐