繁体   English   中英

使用Javascript计算数组中的元素数

[英]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;

由于这是一项任务,而你还没有真正展示过尝试,我只想给你一些提示。

  • 对数组进行排序后,所有1将在数组的开头组合在一起,然后是所有的2组等。
  • 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM