JS中数组去重的九方法
var arr = [1,1,2,1,3,4,5];
var set = new Set(arr);
console.log(Array.from(set))
function norepeat(arr){
var newarr = [];
for(var i in arr){
if(newarr.indexOf(arr[i]) == -1){
newarr.push(arr[i]);
}
}
return newarr;
}
function norepeat(arr){
var newarr = [arr[0]]; //默认加入第一个数 因为第一个数没比较的必要
for(var i =1;i<arr.length;i++){
if(arr.indexOf(arr[i])==i){
newarr.push(arr[i])
}
}
return newarr;
}
var res = [];
var obj = {};
for(var i=0; i<arr.length; i++){
if( !obj[arr[i]] ){
obj[arr[i]] = 1;
res.push(arr[i]);
}}
function norepeat(arr) {
arr.sort(function (a, b) { return a - b; });
for (var i = 0; i < arr.length; i++) {
if (arr[i] == arr[i + 1]) {
arr.splice(i, 1);
i--;
}
}
return arr;
}
注意:不加 i-- 则会删除后,跳过一个数字
function norepeat(arr){
for(var i = 0;i < arr.length-1;i++){
for(var j = i+1;j<arr.length;j++){
if(arr[i] == arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr;
}
function norepeat(arr){
var newArr = arr;
for(var i = newArr.length;i > 0 ; i--){
for(var j = 0; j<i ; j++){
if(newArr[i] == newArr[j]){
newArr.splice(i,1);
}
}
}
return arr;
}
function norepeat(arr){
var newArr = [];
var arrs = [];
for(var i=0;i<arr.length;i++){
var a = arr[i];
newArr[a] = 1;
}
for(var i in newArr){
arrs[arrs.length] = i;
console.log(i);
}
}
方法八:先排序再用递归进行比较删除
function Digui(arr) {
// 获取长度
var len = arr.length;
//对数组进行排序才能方便比较
arr.sort(function (a, b) {
return a - b;
})
// 用递归的方法进行去重
function loop(index) {
if (index >= 1) {
if (arr[index] === arr[index - 1]) {
arr.splice(index, 1);
}
loop(index - 1); //递归loop函数进行去重
}
}
loop(len - 1);
return arr;
};
var arr = [6, 1, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 4, 15];
function norepeat(arr) {
var arrcopy = [];
for (var i = 0; i < arr.length; i++) {
var count = 0; for (var j in arrcopy) {
if (arrcopy[j] != arr[i]) {
count++; }
}
console.log(arrcopy);
if (count == arrcopy.length) {
arrcopy[arrcopy.length] = arr[i];
}
}
return arrcopy;
}
JS中数组去重的九方法的更多相关文章
- js中数组去重的几种方法
js中数组去重的几种方法 1.遍历数组,一一比较,比较到相同的就删除后面的 function unique(arr){ ...
- js中数组去重方法及性能对比
js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...
- js中数组去重的方法
在实际工作或面试中,我们经常会遇到"数组去重"问题,接下来就是使用js实现的数组去重的多种方法: 1.借助ES6提供的Set结构 var arr = [1,1,2,2,3,3,4, ...
- js中数组去重
编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组 [注]正序去重,会漏掉一些元素. [注]去重倒序. var arr = [10, 20, 30, 40, 30, 20, 20 ...
- js中数组遍历常用的方法
常见的数组遍历方法,比如 for in,for of, forEach,map,filter,every,some,find,reduce等 1,普通for循环,经常用的数组遍历 var arr = ...
- JS中数组和字符串的方法大全
数组的方法很多,ECMScript5又提供了好几种方法.有空把之前的云上的笔记整理了一下,方便自己以后查找使用. 一.ECMScript 3的Array.prototype中定义的方法 1.join( ...
- js中数组Array对象的方法sort()的应用
一. sort()方法的介绍 //给一组数据排序 var arrNum = [12,1,9,23,56,100,88,66]; console.log("排序前的数组:"+arrN ...
- js中数组和字符串的方法总结
一.数组方法简单总结为以下几种 1.原有: 增.删.改.截.拼.复.排.转 2.ES5扩展: 查.遍历 增: 前增 ,,,,]; console.log(arr.unshift(,,[ console ...
- JS中数组去除重复的方法
function unique(arr) { var result = [], hash = []; for (var i = 0, elem; (elem = arr[i]) != null; i+ ...
随机推荐
- 用redux-thunk异步获取数据
概述 最近学习redux,打算用redux-thunk给todo添加异步获取数据组件.记录下来,供以后开发时参考,相信对其他人也有用. 注意: 在todo下方,我异步获取我的react博客的标题,点击 ...
- struts2框架学习笔记3:获取servletAPI
Struts2存在一个对象ActionContext(本质是Map),可以获得原生的request,response,ServletContext 还可以获得四大域对象(Map),以及param参数( ...
- Tools - 使用Doxygen和Graphviz分析代码
简介 使用Doxygen来生成结构,使用Graphviz来显示结构: Doxygen:http://www.doxygen.nl/ 用来生成项目文档的工具软件,可将程序中的特定批注转换成为说明文件,还 ...
- 机器学习技法笔记:05 Kernel Logistic Regression
Roadmap Soft-Margin SVM as Regularized Model SVM versus Logistic Regression SVM for Soft Binary Clas ...
- javascript实现二分法
js 实现数组查找二分法 二分法实现原理:二分查找可以解决已经排好序数组的查找问题:只要数组中包含target(即要查找的值),那么通过不断缩小包含target数组的范围,最终就可以找到它. 其算法流 ...
- 课程四(Convolutional Neural Networks),第四 周(Special applications: Face recognition & Neural style transfer) —— 2.Programming assignments:Art generation with Neural Style Transfer
Deep Learning & Art: Neural Style Transfer Welcome to the second assignment of this week. In thi ...
- Jenkins配置AD域认证
Jenkins配置AD域认证 #检测域控地址ping youad.com指向的IP #如果不是实际域控ip地址,则修改hosts vi /etc/hosts #192.168.100.100替换为实际 ...
- Hadoop2源码分析-RPC探索实战
1.概述 在<Hadoop2源码分析-RPC机制初识>博客中,我们对RPC机制有了初步的认识和了解,下面我们对Hadoop V2的RPC机制做进一步探索,在研究Hadoop V2的RPC机 ...
- Linux 定时任务 crontab 和 Systemd Timer
一.说说八卦 说到定时任务,我们常用的就是 crond 服务,但是我们不知道还有另外一种定时方式,那就是 systemd,我们常用 systemd 来管理我们的服务,但是我们却不知道,我们还可以通 ...
- mysql 查看建表语句
show create table `table_name`; 结果如下: