JavaScript 数组去重并统计重复元素出现的次数
1、方法一
var arr = [1, 2, 3, 1, 2, 4]; function arrayCnt(arr) {
var newArr = [];
for(var i = 0; i < arr.length; i++) {
if(newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i])
}
}
var newarr2 = new Array(newArr.length);
for(var t = 0; t < newarr2.length; t++) {
newarr2[t] = 0;
}
for(var p = 0; p < newArr.length; p++) {
for(var j = 0; j < arr.length; j++) {
if(newArr[p] == arr[j]) {
newarr2[p]++;
}
} }
for(var m = 0; m < newArr.length; m++) {
console.log(newArr[m] + "重复的次数为:" + newarr2[m]);
}
}
arrayCnt(arr);
2、方法二(set方法去重)
var arr = [1, 2, 3, 1, 2, 4]; function arrayCnt(arr) {
var newArr = [];
//使用set进行数组去重
newArr = [...new Set(arr)];
var newarr2 = new Array(newArr.length);
for(var t = 0; t < newarr2.length; t++) {
newarr2[t] = 0;
}
for(var p = 0; p < newArr.length; p++) {
for(var j = 0; j < arr.length; j++) {
if(newArr[p] == arr[j]) {
newarr2[p]++;
}
} }
for(var m = 0; m < newArr.length; m++) {
console.log(newArr[m] + "重复的次数为:" + newarr2[m]);
}
}
arrayCnt(arr);
3、方法三(使用对象记录重复的元素,以及出现的次数)
//方法:使用obj记录重复的元素,以及出现的次数
function getCount(arr) {
var obj = {},
k, arr1 = [];
for(var i = 0, len = arr.length; i < len; i++) {
k = arr[i];
if(obj[k])
obj[k]++;
else
obj[k] = 1;
}
console.log(obj)
//保存结果{el-'元素',count-出现次数}
for(var o in obj) {
arr1.push({
el: o,
count: obj[o]
});
}
console.log(arr1);
} getCount([4, 2, 2, 3, 1])
JavaScript 数组去重并统计重复元素出现的次数的更多相关文章
- java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合
//定义一个100元素的集合,包含A-Z List<String> list = new LinkedList<>(); for (int i =0;i<100;i++) ...
- js实现数组去重并且显示重复的元素和索引值
var arr=["a","b","c","d","c","b","d ...
- 也谈面试必备问题之 JavaScript 数组去重
Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...
- JavaScript数组去重的7种方式
1.利用额外数组 function unique(array) { if (!Array.isArray(array)) return; let newArray = []; fo ...
- javascript数组去重算法-----5
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaScript 数组去重方法总结
1.遍历数组法: 这应该是最简单的去重方法(实现思路:新建一新数组,遍历数组,值不在新数组就加入该新数组中) // 遍历数组去重法 function unique(arr){ var _arr = [ ...
- JavaScript数组去重—ES6的两种方式
说明 JavaScript数组去重这个问题,经常出现在面试题中,以前也写过一篇数组去重的文章,(JavaScript 数组去重的多种方法原理详解)但感觉代码还是有点不够简单,今天和大家再说两种方法,代 ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- JS判断数组中是否有重复元素的方法
判断数组中是否有重复元素,最容易想到的方法是使用2重循环,逐个遍历,比较,但是这个是最慢,最笨的方法,百度得出了更好的方法. var ary = new Array("111",& ...
随机推荐
- es6 Object的几个新方法
扩展对象 Object.preventExtensions Object.isExtensible 密封对象 Object.seal Object.isSealed 冻结对象 Object.freez ...
- Luogu P2590 树的统计(树链剖分+线段树)
题意 原文很清楚了 题解 重链剖分模板题,用线段树维护即可. #include <cstdio> #include <cstring> #include <algorit ...
- Linux基础系列-Day5
网络管理 ifconfig网络管理工具 ifconfig依赖于命令中使用一些选项属性,不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置,但是通过ifconfig修改的通常为临时配置,即系统 ...
- 五种常用的C/C++编译器对64位整型的支持
变量定义 输出方式 gcc(mingw32) g++(mingw32) gcc(linux i386) g++(linux i386) MicrosoftVisual C++ 6.0 long lon ...
- 【UOJ #79】一般图最大匹配 带花树模板
http://uoj.ac/problem/79 带花树模板,做法详见cyb的论文或fhq的博客. 带花树每次对一个未盖点bfs增广,遇到奇环就用并查集缩环变成花(一个点),同时记录每个点的Next( ...
- [BZOJ3214][ZJOI2013]丽洁体(Hash+DP)
3214: [Zjoi2013]丽洁体 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 906 Solved: 335[Submit][Status] ...
- 【动态规划】POJ1661 Help Jimmy
Help Jimmy Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 11621 Accepted: 3827 Descr ...
- bzoj 3728: PA2014Final Zarowki
3728: PA2014Final Zarowki Description 有n个房间和n盏灯,你需要在每个房间里放入一盏灯.每盏灯都有一定功率,每间房间都需要不少于一定功率的灯泡才可以完全照亮.你可 ...
- 随机数选择器 Exercise07_13
import java.util.Scanner; /** * @author 冰樱梦 *时间:2018年下半年 *题目:随机数选择器 */ public class Exercise07_13 { ...
- Problem D: 指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。
#include<stdio.h> int sort(int *p,int n) { int i,j,temp; ;i<n-;i++) for(j=i;j<n;j++) if( ...