上海网站建设公司四叶互联,qq靓号申请免费网站,公司网站市场价,连云港网站排名优化ES6的flat方法
const arr[1,2,[33,44,5,[6,7]],3]// es6中的flat方法function arr1()
{
//数组自带的扁平化方法,flat的参数代表的是需要展开几层#xff0c;
//如果是Infinity的话#xff0c;就是不管嵌套几层#xff0c;全部都展开return arr.flat(Infinity)
}
let resul…ES6的flat方法
const arr[1,2,[33,44,5,[6,7]],3]// es6中的flat方法function arr1()
{
//数组自带的扁平化方法,flat的参数代表的是需要展开几层
//如果是Infinity的话就是不管嵌套几层全部都展开return arr.flat(Infinity)
}
let resultarr1();
console.log(result)结果
JSON正则
function arr2()
{
// 首先是使用 JSON.stringify 把 arr 转为字符串
// 接着使用正则把字符串里面的 [ 和 ] 去掉
// 然后再拼接数组括号转为数组对象let arr1JSON.stringify(arr).replace(/\[|\]/g,);return JSON.parse([arr1])
}结果
递归
function arr3() {let myArr [];function fn(arr1){for (let i 0; i arr1.length; i) {//判断是否是数组if(Array.isArray(arr1[i])){fn(arr1[i])}else{myArr.push(arr1[i])}}}fn(arr)return myArr
}结果
reduce方法
function myredduce(arr)
{// reduce 方法: 可以用来给数组求和
// concat() 方法用于连接两个或多个数组。
// concat() 方法不会更改现有数组而是返回一个新数组其中包含已连接数组的值。return arr.reduce((pre,cur){return pre.concat(Array.isArray(cur) ? myredduce(cur) : cur)},[])}
let result myredduce(arr);结果
栈思想
function mystack()
{let newArr[];let stack[].concat(arr)while(stack.length!0){const valstack.pop();if(Array.isArray(val)){stack.push(...val)}else{newArr.unshift(val)}}return newArr
}
let result mystack(arr);结果