数据扁平化之数组处理

数据扁平化之数组处理

**假设有一个数组
const arr = [1,[2,[3,[4,5]]],6];
如何将其从多维数组变为一维数组
方法一:
使用flat()方法

const res1 = arr.flat(Infinity);

方法二
使用reduce

		const flatten = arr =>{
			return arr.reduce((pre,cur) => {
				return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
			},[])
		}
		const res4 = flatten(arr)

数组去重

假设有数组

var arr = [1,1,'1',17,true, true,false,false,'a',{}];

需求:去除重复的数据
方法一:
原理:Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。
使用Set

		const res1 = Array.from(new Set(arr));
		console.log(res1)
		// 第二种双层for循环
		// function arrqc(arr){
		// 	let len = arr.length;
		// 	for(var i = 0; i < len; i++){
		// 		for(let j = i;j< len; j++){
		// 			if(arr[i] === arr[j]){
		// 				arr.splice(j,1);
		// 				len--;
		// 				j--;
		// 			}
		// 		}
		// 	}
		// 	return arr;
		// }
		// 第三种:includes方法
		// var res3 = arrqc(arr)
		// console.log(res3)
		// const unique3 = arr => {
		// 	const res = [];
		// 	for (let i = 0 ; i < arr.length; i++){
		// 		if(!res.includes(arr[i])) res.push(arr[i]);
		// 	}
		// 	console.log(res)
		// 	return res;
			
		// }
		// 去重
		// unique3(arr)
		// 第四种:利用Map()
		const arrqcatch = arr =>{
			const map = new Map();
			const res = [];
			for (let i=0;i<arr.length;i++) {
				if(!map.has(arr[i])){
					map.set(arr[i],true)
					res.push(arr[i]);
				}
			}
			return res;
		}

关注微信公众号前端凌影,一起学习吧!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值