js - 数组扁平化
2021/4/7 18:39:44
本文主要是介绍js - 数组扁平化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
迭代方式:
function myFlatten(arr){ if(!arr || !arr.length) return []; let newArr = [...arr]; let flattenArr = []; while(newArr.length){ let item = newArr.shift(); if(Array.isArray(item)){ newArr.unshift(...item); }else{ flattenArr.push(item); } } return flattenArr; } const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]]; myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
递归方式:
function myFlatten(arr){ return [].concat(Array.isArray(arr) ? myFlatten(arr) : arr) } const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]]; myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
正则方式:
function myFlatten(arr){ return JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']') } const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]]; myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
自带API方式:
function myFlatten(arr){ return arr.flat(Infinity); } const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]]; myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
这篇关于js - 数组扁平化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09vue3开发前端表单缓存自定义指令,移动端h5必备插件
- 2024-05-09React Hooks在class组件中的使用方式
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist
- 2024-03-11icons for vue
- 2024-03-07breadcrumbs react js
- 2024-03-06react login page example
- 2024-03-06react router uselocation
- 2024-03-04postgres jsonb_set