JS数组去重整理合集
1.利用splice
var arr = [1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1];
function repeat(arr){
for(var i = 0;i<arr.length;i++){
for(var j = i+1;j<arr.length;j++){
if(arr[i] == arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr
}
console.log(repeat(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
2.利用reduce
var arr = [1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1]
var newArr = arr.reduce((prev, cur) => {
prev.indexOf(cur) === -1 && prev.push(cur);
return prev;
}, []);
console.log(newArr);
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
3.利用Set
function repeat(newarr){
var s = new Set(arr);
var a = [];
for(var i of s){
a.push(i)
}
return a;
}
var a = repeat(arr)
console.log(a)
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
4.利用indexOf
function repeat(newarr){
var array = [];
for(var i=0;i < newarr.length;i++){
if(array.indexOf(newarr[i]) === -1){
array.push(newarr[i])
}
}
return array;
}
console.log(repeat(arr))
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
5.利用includes
function repeat(newarr) {
var array =[];
for(var i = 0; i < newarr.length; i++) {
if( !array.includes( newarr[i]) ) {
array.push(newarr[i]);
}
}
return array;
}
console.log(repeat(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
6.利用filter
function repeat(newarr) {
return newarr.filter((item, index, arr)=> {
return newarr.indexOf(item, 0) === index;
});
}
console.log(repeat(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
7.利用封装函数(逻辑简单)
function has(arr, n) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == n) {
return true; //如果在里面则返回true;
}
}
return false; //否则返回false;
}
function norepeat(myArr) {
var newArr = []; //定义一个空数组,存放符合条件的值;
for (var j = 0; j < myArr.length; j++) {
if (!has(newArr, myArr[j])) { //利用封装好的函数has判断空数组中是否存在当前的值;
newArr.push(myArr[j]); //如果空数组中没有,那么则push进空数组;
}
}
return newArr;
}
console.log(norepeat(arr))
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
JS数组去重整理合集的更多相关文章
- js 数组去重复的方法
数组去重复是js中常用的方法,归纳了四种如下: 1. for + indexOf 去重复 var arr = [3,5,5,4,1,1,2,3,7,2,5]; var target = []; fo ...
- JS 数组去重复值
var arr1 = [90, 91, 92]; var arr2 = [80, 81]; var arr3 = [80, 71, 72, 73]; var arr = arr1.concat(50, ...
- Js数组去重复取唯一值
function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter ...
- js 数组去重复键
Array.prototype.deleteEle = function() { var newArr = this; for (var i = newArr.length - 1; i >= ...
- js 数组去重复两种方法一看就懂
var arr=[1,1,2,2,3,5,2];function uniqueArr(arr){ var data=[]; for(var i=0;i<arr.length;i++){ if(d ...
- js 数组去重复
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js数组和字符串去重复几种方法
js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i ...
- 11、js 数组详细操作方法及解析合集
js 数组详细操作方法及解析合集 前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易 ...
- post/get in console of JSarray/js 数组详细操作方法及解析合集
https://juejin.im/post/5b0903b26fb9a07a9d70c7e0[ js 数组详细操作方法及解析合集 js array and for each https://blog ...
随机推荐
- Python进阶:程序界的垃圾分类回收
垃圾回收是 Python 自带的机制,用于自动释放不会再用到的内存空间: 什么是内存泄漏呢? 内存泄漏,并不是说你的内存出现了信息安全问题,被恶意程序利用了,而是指程序本身没有设计好,导致程序未能释放 ...
- 05- if-else语句、循环for
if-else 语句 if是条件语句.if语句的语法是 if 条件{ #注意大括号和条件之间不能换行 执行代码 } if语句还包括else if 和 else 部分 package main impo ...
- Python之TensorFlow的基本介绍-1
一.TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经 ...
- IdentityServer4:发布环境的数字签名证书
一,jwt的三个组成部件 先来看一个由IdentityServer颁发的一个标准令牌 eyJhbGciOiJSUzI1NiIsImtpZCI6IjBiNTE3ZjIzYWY0OGM4ZjkyZjExM ...
- WebSocket简单使用
很简单就不写太多介绍了,仅展示服务端代码!! Configure在Startup类的方法中添加WebSockets中间件 app.UseWebSockets(); 可以配置以下设置: KeepAliv ...
- UCOSIII时间片轮转调度
OS_RATE_HZ const OSCfg_TickRate_Hz = (OS_RATE_HZ )OS_CFG_TICK_RATE_HZ; #define OS_CFG_TICK_RATE_HZ 2 ...
- Java RMI学习
网上资料: Java RMI Tutorial Dynamic code downloading using RMI RPC-维基:Remote procedure call implementing ...
- Vue.js源码中大量采用的ES6新特性介绍:模块、let、const
1 关于ES6 ECMAScript6(以下简称ES6)是JavaScript语言的最新一代标准,发布于2015年6月,因为ECMA委员会决定从ES6起每年更新一次标准,因此ES6被改名为E ...
- c# Regex类
- 爬虫之cookie与代理
一, 基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达 ...