JS实现数组中每一个元素出现的次数

  一、var arrayObj = [1, 1, 2, 3, 3, 3, 4, 5, 5];

  找出数组中每一个元素出现的次数,我这里简单一下就用for循环来实现。首先先声明几个变量,

  var temp = "";//中间变量,临时存储循环时用来存储数组中的某个元素

  var count = 0;//循环时用来存储数组中的某个元素出现的次数

  var arrNew = new Array(); //新建一个数据用来存放循环后的数据

  

  下面开始循环

  for(var i=0;i<arrayObj.length;i++){

    if(arrayObj[i]!=-1){

      temp=arrayObj[i];

      for(var j=0;j=arrayObj.length;j++){//再次循环数组,用第一次循环得到的temp与数组的每一个元素比较

        if(temp==arrayObj[j]){

            count++;//如果两个元素相同,count就自加一次

            arrayObj[j] = -1;//这个时候临时改变这次循环时元素变量的值,以便不参与下次循环

        }

      }

      arrNew.push(temp + ":" + count);//把这次循环的元素以及出现的次数保存到新的数组中

      count = 0;//让count的值重新等于0

    }

  }

  

  //循环打印新的数组

  for(var i=0;i<arryNew.length;i++){

    alert(arryNew[i]);

  }

  

  二、对于这样数组

  var arr = [

        { "name": "Tom", "age": "10", "gender": "male" },

        { "name": "Lucy", "age": "10", "gender": "female" },

        { "name": "Tony", "age": "11", "gender": "male" },

        { "name": "Jack", "age": "11", "gender": "male" },

        { "name": "Yuanyuan", "age": "12", "gender": "female"}

       ];

  实现的方法和上面的一样只是多了一步,这个我们找按年龄一样的有多少个,首选我们先把年龄都找出来存放在一个数组中。

  var arrayObj=new Array();

  for(var i=0;i<array.length;i++){

    arrayObj.push(arr[i].age);

  }

  接下来就和上面的方法一样了,在此就不再陈述。

  这个只是我的一个朋友问我的一个问题,就做了一下,或许有更好的方法和逻辑来实现。

时间: 2024-10-16 23:52:16

JS实现数组中每一个元素出现的次数的相关文章

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /************************************************************************/ /*数组的结构体类型                                                    */ /*******************

C#如何删除数组中的一个元素

C#如何删除数组中的一个元素,剩余的元素组成新数组,数组名不变double[] arr = new double[n];需要删除的是第m+1个数据arr[m]求新数组arr.(新数组arr包含n-1个元素)m,n数值已知 double[] arr = new double[50]; List<double> list = arr.ToList(); list.RemoveAt(5+1); double[] newarr = list.ToArray(); 转:http://www.zybang

在数组中添加一个元素进行(替换 删除 插入)

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //可变数组继承不可变数组 //1.创建  设定元素个数进行创建 NSMutableArray *mutArr=[NSMutableArray arrayWithCapacity:7]; //2.向数组中添加一个元素 NSArray *[email protected][@"MON",@

JS删除数组中的某个元素

首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: 1 Array.prototype.indexOf = function(val) { 2 for (var i = 0; i < this.length; i++) { 3 if (this[i] == val) return i; 4 } 5 return -1; 6 }; 然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素: 代码为: 1 Array.prototype.remo

js获取数组的最后一个元素

摘自:开源it 在js里面如何获取一个数组的最后一个元素呢?这里总结了两种方法,有需要的朋友可以看看. (1)js内置pop方法 pop() 方法用于删除并返回数组的最后一个元素,注意这里在获取了数组的最后一个元素的同时也将原数组的最后一个元素给删除了.如果数组已经为空,则该方法不改变数组,并返回 undefined 值,如: 查看代码打印 1 var args=new Array(['www'],['phpernote'],['com']); 2 alert(args.pop());//com

获取数组中最后一个元素

Array.prototype.slice(begin,end)用来获取begin和end之间的数组元素.如果你不设置end参数,将会将数组的默认长度值当作end值.但有些同学可能不知道这个函数还可以接受负值作为参数.如果你设置一个负值作为begin的值,那么你可以获取数组的最后一个元素.如: var array = [1,2,3,4,5,6]; console.log(array.slice(-1)); // [6] console.log(array.slice(-2)); // [5,6]

在一维数组中查找某个元素出现的次数

题目: 编写一个函数,实现在一个一维整型数组中查找某个元素出现的次数. 函数原型:int Search( int a[ ], int n, int x ) 参数说明: a是一维整型数组 n是数组中元素的个数 x是要查找的元素 返回值:如果找到,返回x的出现次数:否则,返回零. 1 int Search( int a[ ], int n, int x ) 2 { int i, count; 3 count=0; 4 for( i=0; i<n; i++ ) 5 if( a[i]==x ) coun

为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了

原因: 数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变. 解决方案: 原理就是先把数组转换成字符串再转换成对象 ,这样会新分配一块内存,就不会指向同一个堆中的数据.  例子1: var tmp = JSON.parse(JSON.stringify(array)); 原文地址:https://www.cnblogs.com/KevinTong/p/11414770.html

js 删除数组中多个元素

js中如果使用forEach的话 , splice删除的时候会导致js的数组的length发生改变 , 因此会出现本应该删除的元素没有被删除 . 因此 , 我的想法是 : 使用index遍历 , 删除一个数组之后 , index不变  代码如下 : 1 var deleteTaskIds = [1,2,3,4]; 2 var taskList = [{}] 3 for (var i=0; i<taskList.length;){ 4 var task = taskList[i]; 5 if (d