摘要:将这个问题进行转化将维数组降到维思路构造一个目标数组,初始为空。如果当前项是数组,对当前数组元素进行降维。这是一个典型的递归过程。
将这个问题进行转化 ===> 将N维数组降到(N-1)维
思路:构造一个目标数组,初始为空。遍历N维数组中的每一项。
如果当前项不是数组而是单个元素,那么将它保存到目标数组中。
如果当前项是数组,对当前数组元素进行降维。
这是一个典型的递归过程。
function flattenArray(list, target) { const len = list.length; for(let i = 0; i < len; i++) { if (list[i] instanceof Array) { flattenArray(list[i], target); } else { target && target.push(list[i]); } } } let target = new Array(); const list = [1, [3, [4, [6, 7]], 5], 2]; flattenArray(list, target); console.log("list ", target);
结果是:list [ 1, 3, 4, 6, 7, 5, 2 ]
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106674.html
摘要:问题简述给予一个多维数组和一个描述取值路径的一维数组通过调用函数返回取值路径描述的值,如原问题传送门之所以想记录一下是因为之前有在刷题的习惯,后来工作忙就怠慢了,今天闲来无事就准备刷几道玩玩,然后就挑了一个比较简单的中的难度评级的题。 问题简述 给予一个多维数组和一个描述取值路径的一维数组, 通过调用函数f返回取值路径描述的值,如f([[1, 2], [3, 4], [5, 6]], ...
摘要:对多个一维数组进行并运算,实际上就是加强版的。所以我要说的是这个函数,将传入参数转换为一个数组进行到的回调函数中,以此达到函数接到的是一个一维数组的集合。 每次小章节的开题都烦恼写什么好,所以直接接下文 (~o▔▽▔)~o o~(▔▽▔o~) 。 _.first = _.head = _.take = function(array, n, guard) { if (arra...
摘要:数组元素甚至可以是对象或其它数组。它执行的是浅拷贝,这意味着如果数组元素是对象,两个数组都指向相同的对象,对新数组中的对象修改,会在旧的数组的相同对象中反应出来。 JS中的数组是弱类型的,数组中可以含有不同类型的元素。数组元素甚至可以是对象或其它数组。JS引擎一般会优化数组,按索引访问数组常常比访问一般对象属性明显迅速。数组长度范围 from 0 to 4,294,967,295(2^...
摘要:转自实例脚本之家给数组排重与函数的区别它要求是字符串,而这个可以是数组对象要排重的数组是否保留原来的代码很简单,却非常的实用,有需要的小伙伴可以直接拿去用的。 转自 _php实例_脚本之家 /** * 给数组排重 * 与array_unique函数的区别:它要求val是字符串,而这个可以是数组/对象 * * @pa...
阅读 2232·2021-11-22 09:34
阅读 1984·2021-09-22 15:22
阅读 1963·2019-08-29 15:05
阅读 2080·2019-08-26 10:43
阅读 3388·2019-08-26 10:26
阅读 836·2019-08-23 18:29
阅读 3498·2019-08-23 16:42
阅读 1976·2019-08-23 14:46