function flatDeep(arr) {
	return arr.reduce((pre, next) => {
		return pre.concat(Array.isArray(next) ?  flatDeep(next) : next)
	},[])
  • 扁平化一层的
arr.reduce((pre, item) => {
    return pre.concat(item)
}, [])
  • 最新的flat方法

经测试,52版本的谷歌浏览器不支持,可以传扁平化的层数,不传默认展开一层,传Infinity会展开所有层级。

arr.flat(Infinity)

数组对象展开为对象

继续使用reduce方法,即可把数组对象展开为对象

arr.reduce((prev,next,index)=>{
	prev[next.prop]=''
},{})

prev是最终的对象,{}是初始值,可以从数组对象里取值,赋值给prev,具体需要说明字段,直接赋值即可。

数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 举个例子,假设有个名为 flatten 的函数可以做到数组扁平化,效果就会如下: var arr = [1, [2, [3, 4]]]; console.log(flatten(arr)) // [1, 2, 3, 4] 知道了效果是什么样的了,我们可以去尝试着写这个 flatten 函数了 我们最一开始能想到的莫过于循环数组元素,如果还是一个数组,就递归调用该方法: // 方法 1 var arr = [1, [2, [3, 4]]]; function flatten(a JavaScript数组扁平化 对于下边这个深层嵌套数组,我们在某些环境可能需要将它进行扁平化(转换为一维数组),比如评论系统种,评论数据可能就会深层嵌套。所以我给大家带来了下边几种方法。 let arr = [1, [2, 3, 4], [3, 5, [1, [4]]]]; 1. ES6中Array.prototype.flat()函数 对兼容性要求较高,不兼容ie,且要求node版本11以上。 执行时间:0.190ms (nodejs版本12.16.1) arr.flat(Infinity); // [1, 2, 3, 4, 3, 5, 1, 4] 2. 转换为字符串方法 toStri 本文实例讲述了JS数组扁平化、去重、排序操作。分享给大家供大家参考,具体如下: 在网上看到一个校招题目,已知一个数组var arr = [[1, 3, 2, 1],[5, 3, 4, 8, 5, 6, 5],[6, 2, 8, 9, [4, 11, 15, 8, 9, 12, [12, 13, [10], 14]]], 16],用js编写一个程序将这个数组扁平化,并得到一个升序且无重复值的数组。得到最终结果为:[1,2,3,4,5,6,8,9,10,11,12,13,14,15,16]。下面对数组扁平化、去重和排序就行总结。 一、数组扁平化 var arr = [[1, 3, 2, 1], 展开语法(Spread syntax),可以在函数调用/数组构造时, 将数组表达式或者string在语法层面展开;还可以在构造字面量对象时, 将对象表达式按key-value的方式展开。(译者注: 字面量一般指[1, 2, 3]或者{name: "mdn"}这种简洁的构造方式) function sum(x, y, z) { return x + y + z; const ... // 1.展开数组,可以将数组成员一个个展开 let arr = [1, 2, 3, 4, 5] console.log(arr);//[1, 2, 3, 4, 5] console.log(...arr);//1 2 3 4 5 // 2.需求:将arr添加到temp let temp = ['a', 'b', 'c'] temp.p 有时候,出于某种目的,需要将数组转化成对象,一个简单快速的方法是就使用展开运算符号(…): var fruits = [“banana”, “apple”, “orange”, “watermelon”]; var fruitsObj = { …fruits }; console.log(fruitsObj); // returns {0: “banana”, 1: “apple”, 2: “orange”, 3: “watermelon”, 4: “apple”, 5: “orange”, 6: “gra name: 'saly', role: [{role_id: 1, name: "管理员", status: 1}], org: [{org_id: 1, name: "xx公司", parent_id: 首先什么是数组展开? 假如现在有这样一个需求:将后台的一个多重 List 数据,展开成一个 List 后,并去重后排序; ["a", "b", ["c", "d"], [["d"],"e"], "f"] => ["a", "b", "c", "d", "e&q