1、去重:

  法1:使用数组IndexOf去重

  法2:使用对象Key:

 

<script>

var arr1 = [1,13,24,11,11,14,1,2];
let unique = function(arr) {
let hashTable = {};
let data = [];
for(let i=0,l=arr.length;i<l;i++) {
alert(!hashTable[arr[i]]);
if(!hashTable[arr[i]]) {
hashTable[arr[i]] = true;
data.push(arr[i]);
}
}
console.log(hashTable);
return data;
}
console.log(unique(arr1));
</script>

2、找出字符串中出现次数最多的字符及显示次数

  法1、使用indexOf循环

    

//var str = "ssraetadsdafaerasssssdajigaf";
var str = "fffffff";
var strr = "";
var ci = 0;
var Lastname = "";
var Lastci = 0;
var ind = 0;
var flag1 = 0;
for(var i = 0;i<str.length;i++){
// console.log(str.charAt(i));
// console.log(strr);
if(strr.indexOf(str.charAt(i))!=-1){
//alert(strr.indexOf(str.charAt(i)));
continue;
}
//不加这个判断运行166次,加上以后运行38次         
         v1 : for(var j = 0;j<str.length+1;j++){
var indd = str.indexOf(str.charAt(i),ind);
ind = indd+1;
flag1++;
if(indd == -1){
ci = j;
ind = 0;
if(ci>=Lastci){
Lastci = ci;
Lastname = str.charAt(i);
}
break v1;
}
}
strr += str.charAt(i);
}
console.log("运行次数"+flag1);
console.log("出现最多的字母"+Lastname);
console.log("出现最多的次数"+Lastci);
//循环次数为arr.length+1,否则会影响类似ffffff这种字符串的判断。
 

  法2:使用对象key值的方法

//法2:使用对象key值实现
function findMaxDuplicateChar(str) {
if(str.length == 1) {
return str;
}
let charObj = {};
for(let i=0;i<str.length;i++) {
if(!charObj[str.charAt(i)]) {
charObj[str.charAt(i)] = 1;
}else{
charObj[str.charAt(i)] += 1;
}
}
let maxChar = '',
maxValue = 1;
for(var k in charObj) {
if(charObj[k] >= maxValue) {
maxChar = k;
maxValue = charObj[k];
}
}
return maxChar;
}

去重除了indexOf的其他方法(使用对象Key的方法)及统计重复次数的更多相关文章

  1. 利用Linux命令行进行文本按行去重并按重复次数排序

    最近杂事太多,正事进展缓慢.Fighting! linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并按重 ...

  2. 1.面向过程编程 2.面向对象编程 3.类和对象 4.python 创建类和对象 如何使用对象 5.属性的查找顺序 6.初始化函数 7.绑定方法 与非绑定方法

    1.面向过程编程 面向过程:一种编程思想在编写代码时 要时刻想着过程这个两个字过程指的是什么? 解决问题的步骤 流程,即第一步干什么 第二步干什么,其目的是将一个复杂的问题,拆分为若干的小的问题,按照 ...

  3. JavaScript 数组去重并统计重复元素出现的次数

    1.方法一 var arr = [1, 2, 3, 1, 2, 4]; function arrayCnt(arr) { var newArr = []; for(var i = 0; i < ...

  4. Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究

    Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: ​ 反射的概念是由Smith在1982年首次提出的 ...

  5. Python反射和内置方法(双下方法)

    Python反射和内置方法(双下方法) 一.反射 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发 ...

  6. JS中对数组元素进行增、删、改、查的方法,以及其他方法

    前言 昨天联调一个页面,看着就一个页面,接口倒是不少. 热点问题配置测试联调完成(同步异步接口共11个) 1.配置新增 2.配置编辑 3.配置删除 4.热点问题新增 5.热点问题编辑 6.热点问题删除 ...

  7. js常用的遍历方法以及flter,map方法

    1.首先明确vue主要操作数据.他并不提倡操作dom. 数组的变异:能改变原数组. *** 先来复习下便利==遍历一个数组的四种方法: <script> let arr = [1, 2, ...

  8. Java 终结方法 避免使用终结方法

    在Java中,当一个对象变得不可到达时,垃圾回收器会回收与该对象相关联的存储空间.用try-finally块来回收其他的非内存资源. 终结方法的缺点在于不能保证会被及时地执行.从一个对象变得不可到达开 ...

  9. javascript私有方法揭示为公有方法

    揭示模式可用于将私有方法暴露为公共方法.当为了对象的运转而将所有功能放置在一个对象中以及想尽可能地保护该对象,这种揭示模式就非常有用. 板栗: var myarray; (function(){ va ...

随机推荐

  1. openfile

    linux修改open files数   概要 linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不 ...

  2. Linux Linux常用命令一

    ls-查看文件信息 -ls是英文单词list的简写,其功能为列出目录的内容,使用户最常用的命令之一 -它类似于DOS下的dir命令 ls[参数] 目录或文件 常用的参数及含义 "-a&quo ...

  3. Android错误——基础篇

    1. Android工程在真机上运行调试: 花了二个小时的时间来把App热部署到小米机上,简直让我寒透了心, 原本是按照网上提供的步骤一步步的做着,没想到小米神机居然出的是什么内测小米助手,两个窗口来 ...

  4. Unity3d 多次显示关闭一个UI

    publicclass OpenClooseGoUI : MonoBehaviour { public  GameObject   closeBt; public  GameObject   goUI ...

  5. 深入PHP内核 SAPI探究

    转自 http://www.csdn.net/article/2014-09-26/2821885-exploring-of-the-php-2 SAPI是Server Application Pro ...

  6. iPhone SDK中多线程的使用方法以及注意事项

    多线程iphonethreadapplication编程嵌入式 然现在大部分PC应用程序都支持多线程/多任务的开发方式,但是在iPhone上,Apple并不推荐使用多线程的编程方式.但是多线程编程毕竟 ...

  7. Java基础 - 获取键盘输入

    package com.demo3; import java.util.Scanner; /* * 使用 Scanner 获取键盘输入供程序使用 * * 使用步骤: * A:导包 * import j ...

  8. 基于TCP_socket套接字实现远程执行命令

    基于tcp的套接字实现远程执行命令的操作 ——客户端敲命令,服务端执行 #服务端 import socket import subprocess phone=socket.socket(socket. ...

  9. LINUX 文件/组/帮助/权限/文件压缩/管道

    Linux文件/目录详解 常用文件路径的作用 /var/log/messages 系统类的日志文件 /var/log/secure 登录日志文件 /var/spool/cron 定时任务目录 /etc ...

  10. centos7 终端修改字体大小

    如果你觉得你的终端字体太小了,停下来看一看这里可以帮你快捷修改字体大小 修改字体大小(这个是最坑爹的) 其实关键的命令就一个:setfont 但是setfont后面要跟的字体到底要写什么就的具体去查了 ...