javascript:算法之数组去重
一
/*******************************111111111***********************************/
/*1,最好数组去重方法,利用json的键的唯一性*/
function removeRepeator(oldArr){
var newArr=[];//放结果的空数组
var tempJson={};//中间临时json对象
for (var i = 0; i < oldArr.length; i++) {//循环老数组
if (!tempJson[oldArr[i]]) {//oldArr[i],老数组的值,做json的"键""~
newArr.push(oldArr[i]);//新数组push不重复的值
tempJson[oldArr[i]]='sth'; //给json增加键和随便的一个值。方便下次循环检测有没有"键""
}
}
return newArr;
}
var oldArr=[5,7,9,6,5,1,8,5,4,9]
var newArray=removeRepeator(oldArr);
console.log(newArray);//[5, 7, 9, 6, 1, 8, 4]
二
/**********************2222222**************************/
/*1,增加一个新数组,将老数组的项目一个一个添加进去,
2,每一次添加的时候,循环新数组,看看新数组有没有这个值,有的话就不添加,没有就添加*/
/*for 嵌套if 嵌套for*/
function removeRepeator2(oldArr){
var newArr=[];
for (var i = 0; i < oldArr.length; i++) {
if (!isHasThisVal(newArr,oldArr[i])) {
newArr.push(oldArr[i]);
}
}
return newArr;
}
function isHasThisVal(newArr,val){
for (var i = 0; i < newArr.length; i++) {
if (newArr[i]==val) {
return true;
}
}
return false;
}
var oldArr=[5,7,9,6,5,1,8,5,4,9]
var newArray=removeRepeator2(oldArr);
console.log(newArray);//[5, 7, 9, 6, 1, 8, 4]
javascript:算法之数组去重的更多相关文章
- 【跟着大佬学JavaScript】之数组去重(结果对比)
前言 数组去重在面试和工作中都是比较容易见到的问题. 这篇文章主要是来测试多个方法,对下面这个数组的去重结果进行分析讨论.如果有不对的地方,还请大家指出. const arr = [ 1, 1, &q ...
- Javascript中的数组去重-indexof方法
在Javascript中,有时我们会用到数组去重.我在这里给大家介绍一下本人认为最简单实用的一种方法-indexOf()去重. var arr = [1,1,1,2,2,2,3,3,4,5,6,2,1 ...
- JavaScript tips:数组去重
1.实现目标:数组去重 2.实现思路: (1)创建新数组. (2)遍历原数组,判断当前被遍历元素是否存在于新数组,如果存在于新数组,则判断当前被遍历元素是重复的:如果不存在于新数组,则判断当前被遍历元 ...
- Javascript学习记录——数组去重
var arr = [1, 2, 3, 5, 5, '45', '45', 4, 1, '1', '2'] for (var i = 0; i < 10000; i++) { arr.push( ...
- javascript中的数组去重
1.方法一:双层循环,外层循环元素,内层循环做比较,若相同则跳过,不同则加入结果集中,获取没重复的最右侧的值放入数组中 Array.prototype.distinct = function(){ v ...
- JavaScript中对象数组去重方法
在一次对后端返回的对象数组的操作时想通过indexOf()或者includes()的方法来实现对对象数组的去重但是行不通,因为用indexOf()返回的都是-1,一下记录两种对象数组(更具指定属性)去 ...
- javascript:算法之数组sort排序
数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...
- JavaScript 小技巧 数组去重
const array = [1, 2, 3, 3, 5, 5, 1]; const uniqueArray = [...new Set(array)]; console.log(uniqueArra ...
- js06--利用js给数组去重
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
随机推荐
- js html 一些技巧
0.同步或异步ajax进行提交add update delete等. 在ajax中传参数可以和web端bean对应 1.ajax完成后跳转可以在js中使用 window.location.href=u ...
- ps去水印
使用仿制图章工具去除使用仿制图章工具去除文字这是比较常用的方法,具体的操作是,选取仿制图章工具,按住Alt键,在无文字区域点击相似的色彩名图案采样,然后在文字区域拖动鼠标复制以覆盖文字.要注意的是,采 ...
- Android PhoneGap 利用 Activity 实现 CordovaInterface
1.修改main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...
- CentOS6.4 安装Sphinx 配置MySQL数据源
前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `id` ...
- Codeforces Round #215 (Div. 2) B. Sereja and Suffixes
#include <iostream> #include <vector> #include <algorithm> #include <set> us ...
- 【BZOJ】1535: [POI2005]Sza-Template
题意 给一个串\(s(1 \le |s| \le 500000)\),求一个最长的串,使得这个串能覆盖整个串(可以重叠). 分析 首先这个串肯定是前缀也肯定是后缀. 题解 对串kmp后,建立\(fai ...
- HDU 4778 Gems Fight!(DP)
题目链接 当我放弃的时候过了.sb啊,卡常数!!! 换了好几个姿势,本来没写预处理,预处理+俩剪枝,尼玛就过了.. #include <stdio.h> #include <stri ...
- android注意事项
今天做安卓设计,正在学习布局.在过程中遇到了几个小问题,感觉非常有必要记录分享出来. 1.string字符串不要出现"that's" ,要使用“that is”要不然会报错. 2. ...
- tomcat、Linux服务器
tomcat.Linux服务器 用到的命令 解压命令: tar -zxvf 文件名 配置 : vi /etc/profile 按 i 进入 ...
- Flex条件判断中注意事项
1:等于判断条件,一定注意写两个==等号, if (obj.ProcessType="Relation") 如果只写一个等号,编译不会报错,并且Flex会认为是赋值操作,并且该语句 ...