[英]Count number of elements in an array using Javascript
我有一个Javascript课程的作业,我必须计算每个特定类型的元素在阵列中出现的数量。 数组长105个元素,只出现数字1,2,3,4和5.我必须计算1个,2个,3个等的数量。
当然,使用循环有一种简单的方法可以做到这一点,但是我的老师在作业结束时添加了以下内容:
仅使用length属性,toString(),sort()和indexOf()方法。 请不要循环或条件语句。
我不知道如何在不使用循环的情况下完成此任务。 非常感谢您给予我的任何帮助。 谢谢!
这将是回答:
var c=[1,2,3,4,5,2,3,4,5]
c.sort()
cout_of_1 = c.indexOf(2)-c.indexOf(1);
cout_of_2 = c.indexOf(3)-c.indexOf(2);
cout_of_3 = c.indexOf(4)-c.indexOf(3);
cout_of_4 = c.indexOf(5)-c.indexOf(4);
cout_of_5 = c.length-c.indexOf(5)+1;
由于这是一项任务,而你还没有真正展示过尝试,我只想给你一些提示。
indexOf
函数返回可在数组中找到给定元素的第一个索引,如果不存在,则返回-1。 给定排序数组中每个数字第一次出现的索引,您应该能够计算出每个数字的数量。 我不确定你是否需要toString()
。 你的教练可能会把它扔进去偷偷摸摸。
首先,对数组进行排序,然后获取下一个值的第一个匹配项。 这是你拥有的数量,减去你已经拥有的数量。
var array = [1,2,5,3,2,4,5,2,1,3,3,4,5,6,2];
array = array.sort();
var ones = array.indexOf(2);
var twos = array.indexOf(3) - ones;
var threes = array.indexOf(4) - ones - twos;
...
但是对于最后一个值(5),没有要检查的下一个值。 你可以通过检查长度并从中减去一个来解决这个问题。
var fives = array.length - ones - twos - threes - fours;
请记住,这实际上是错误的代码,您应该使用循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.