js 数组去重、去空(收藏)
- function unique (arr) {
- return Array.from(new Set(arr))
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr){
- for(var i=0; i<arr.length; i++){
- for(var j=i+1; j<arr.length; j++){
- if(arr[i]==arr[j]){ //第一个等同于第二个,splice方法删除第二个
- arr.splice(j,1);
- j--;
- }
- }
- }
- return arr;
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr) {
- if (!Array.isArray(arr)) {
- console.log('type error!')
- return
- }
- var array = [];
- for (var i = 0; i < arr.length; i++) {
- if (array .indexOf(arr[i]) === -1) {
- array .push(arr[i])
- }
- }
- return array;
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr) {
- if (!Array.isArray(arr)) {
- console.log('type error!')
- return;
- }
- arr = arr.sort()
- var arrry= [arr[0]];
- for (var i = 1; i < arr.length; i++) {
- if (arr[i] !== arr[i-1]) {
- arrry.push(arr[i]);
- }
- }
- return arrry;
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- unction unique(arr) {
- if (!Array.isArray(arr)) {
- console.log('type error!')
- return
- }
- var arrry= [];
- var obj = {};
- for (var i = 0; i < arr.length; i++) {
- if (!obj[arr[i]]) {
- arrry.push(arr[i])
- obj[arr[i]] = 1
- } else {
- obj[arr[i]]++
- }
- }
- return arrry;
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr) {
- if (!Array.isArray(arr)) {
- console.log('type error!')
- return
- }
- var array =[];
- for(var i = 0; i < arr.length; i++) {
- if( !array.includes( arr[i]) ) {//includes 检测数组是否有某个值
- array.push(arr[i]);
- }
- }
- return array
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr) {
- var obj = {};
- return arr.filter(function(item, index, arr){
- return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
- })
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr) {
- return arr.filter(function(item, index, arr) {
- //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
- return arr.indexOf(item, 0) === index;
- });
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr) {
- var array= arr;
- var len = array.length;
- array.sort(function(a,b){ //排序后更加方便去重
- return a - b;
- })
- function loop(index){
- if(index >= 1){
- if(array[index] === array[index-1]){
- array.splice(index,1);
- }
- loop(index - 1); //递归loop,然后数组去重
- }
- }
- loop(len-1);
- return array;
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function arrayNonRepeatfy(arr) {
- let map = new Map();
- let array = new Array(); // 数组用于返回结果
- for (let i = 0; i < arr.length; i++) {
- if(map .has(arr[i])) { // 如果有该key值
- map .set(arr[i], true);
- } else {
- map .set(arr[i], false); // 如果没有该key值
- array .push(arr[i]);
- }
- }
- return array ;
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr))
- function unique(arr){
- return arr.reduce((prev,cur) => prev.includes(cur) ? prev : [...prev,cur],[]);
- }
- var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
- console.log(unique(arr));
- [...new Set(arr)]
- var arr = [{
- "name": "ZYTX",
- "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
- "gender": "AAAAAA.doc"
- }, {
- "name": "ZYTA",
- "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
- "gender": "BBBBBB.doc"
- }, {
- "name": "ZDTX",
- "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
- "gender": "CCCCCC.doc"
- }, {
- "name": "ZYTX",
- "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
- "gender": "AAAAAA.doc"
- }];
- var hash = {};
- arr = arr.reduce(function(item, next) {
- hash[next.name] ? '' : hash[next.name] = true && item.push(next);
- return item
- }, [])
- console.log(arr);
- //去空
- function filter_array(array) {
- return array.filter(item=>item);
- }
- //调用
- var arr1 = [undefined,undefined,1,'','false',false,true,null,'null'];
- console.log(filter_array(arr1));
js 数组去重、去空(收藏)的更多相关文章
- js数组去重五种方法
今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5). 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, ...
- JS数组去重的6种算法实现
1.遍历数组法 最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法"indexOf"是ECMAScript5 方法 ...
- js 数组去重小技巧
js 数组去重小技巧 Intro 今天遇到一个问题,需要对数据进行去重,想看一下有没有什么比较方便的方法,果然有些收获. Question 问题描述: 我有一个这样的数据: [ { "Pro ...
- JS数组去重的几种常见方法
JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...
- js数组去重的方法(转)
JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...
- js数组去重的4种方法
js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.inde ...
- JS 数组去重(数组元素是对象的情况)
js数组去重有经典的 几种方法 但当数组元素是对象时,就不能简单地比较了,需要以某种方式遍历各值再判断是否已出现. 因为: 1.如果是哈希判断法,对象作哈希表的下标,就会自动转换成字符型类型,从而导致 ...
- js数组去重常用方法
js数组去重是面试中经常会碰到的问题,无论是前端还是node.js数组常见的有两种形式,一种是数组各元素均为基本数据类型,常见的为数组字符串格式,形如['a','b','c'];一种是数组各元素不定, ...
- js 数组去重方法汇总
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- js数组去重 javascript版
//js数组去重 //思路: // 1.放入第一个元素 // 2.放入第n个元素,和第n个之前的元素就行比较,如果有重复,则跳过.没有重复就加入数组中 // 3.返回新的去重后数组 Array.pro ...
随机推荐
- 新版create-react-app+webpack4跨域
src/setupProxy.js 创建文件 const proxy = require('http-proxy-middleware'); module.exports = function(ap ...
- Other-Website-Contents.md
title: 本站目录 categories: Other sticky: 10 toc: true keywords: 机器学习基础 深度学习基础 人工智能数学知识 机器学习入门 date: 999 ...
- ROS手动编写服务端和客户端service demo(C++)
service demo 原理和 topic 通信方式很像 点击打开链接,因此 1.srv : 进入 service_demo 创建 srv 文件夹,创建 Greeting.srv,将以下代码插入: ...
- 配置Jupyter Notebook
配置Jupyter Notebook 1 修改Jupyter Notebook的工作目录 Jupyter默认打开的是用户目录,使用如下步骤自行修改: CMD生成Jupyter配置文件: (python ...
- Spring注解不生效
如果在使用spring中,发现注解不生效,检查下如下配置是否配置. 1:一般情况下@Autowired默认是不生效的,配置之后,才会生效 <context:annotation-config / ...
- ansible 错误记录(1)
基本环境:docker基于centos7 在docker里面安装ansible 不管是在root还是普通用户下执行 ansible all -m ping 都报如下错误: 172.20.1.1 | ...
- Tkinter 之Grid布局
一.参数说明 参数 作用 column 指定组件插入的列(0 表示第 1 列)默认值是 0 columnspan 指定用多少列(跨列)显示该组件 row 指定组件插入的行(0 表示第 1 行) ...
- 报错:Table 'sell.hibernate_sequence' doesn't exist
错误信息:Table 'sell.hibernate_sequence' doesn't exist 错误原因:实体主键没有配置主键自增长 完整配置如下 /**主键id*/ @Id @Generate ...
- fdisk交互
fdisk交互 命令 说明 指令 a 设置可引导标记 toggle a bootable flag b 编辑bsd磁盘标签 edit bsd disklabel c 设置DOS操作系统兼容标记 tog ...
- Java 关于日期加一天(日期往后多一天)
1.原来Java的日期添加不像.NET的.Add: import java.util.Date ; Date date=new Date();//取时间System.out.println(dat ...