本文主要和大家分享js数组去重与去扁平化详解希望能帮助到大家。
数组去重
var arr = [1, 43, 4, 3, 2, 4, 3]; // 去重后 arr = [1, 43, 4, 3, 2]
传统方法,for循环实现
function dedupe(arr) { var rets = []; for (var i = 0; iES6方法实现
// es6提供的新的数据结构Set,类似数组,但是成员的值都是唯一的,没有重复的值。function dedupe(arr) { var newSet = new Set(arr); // arr变成了set的数据结构,并去除了其中重复的元素 return Array.from(newSet); // Array.from方法将set数据结构转为数组数据结构}登录后复制
数组去扁平化
数组的扁平化,就是将一个嵌套多层的数组array(嵌套可以是任何层数)转换为只有一层的数组var arr = [1, 2, 3, [4, 3, [2, 7], 2], 5, [5, 9, 10], 7];
// 去扁平化后
arr = [1, 2, 3, 4, 3, 2, 7, 2, 5, 5, 9, 10, 7];(1)循环递归实现
// for循环,如果子元素还是数组,则递归调用该方法function flatten(arr) { var rets = []; for(var i = 0; i { if (Array.isArray(item)) { rets = rets.concat(flatten(item)); } else { rets.push(item); } }); return rets;}登录后复制
(2)使用reduce简化代码
function flatten(arr) { arr.reduce(function(pre, item){ return pre.concat(Array.isArray(item) ? flatten(item) : item); }, [])}登录后复制
(3)如果数组元素都为数字,则可以使用toString方法
function flatten(arr) { var newArr = arr.toString().split(','); return newArr.map(function(item){ return +item; // 将字符串转为数字 });}登录后复制
相关推荐:
js数组去重和排序详解、
JavaScript和Python 的数组去重解析
实例详解javascript数组去重的几种思路
以上就是js数组去重与去扁平化详解的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2784754.html