一、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);
}
接下来就和上面的方法一样了,在此就不再陈述。
这个只是我的一个朋友问我的一个问题,就做了一下,或许有更好的方法和逻辑来实现。