我们都知道普通的一维数组,可以有很多的方法去进行遍历获取目标值和对应的下标,但是如果是二维甚至多维的我们该怎么去获取呢?
1.ES6中提供了一个数组扁平化的方法flat(),该flat()方法返回一个新数组,其中所有子数组元素以递归方式连接到指定深度。
2.Array.flat(num),num即指定返回的数组解构原数组多少层。
3.如果不确定数组有多少层,也可以给一个无穷大Infinity,则全部扁平化,变成一维数组。
let arr = [12,5,[10,11,14,[15,17,18,[19,20,30,4]],13],6,9]
//调用flat方法,数组扁平化
let newArr = arr.flat(Infinity)
//求最大值和下标。
let max = Math.max(...newArr)
let maxindex = newArr.indexOf(max)
console.log(max,maxindex); //最大值30,下标10
//求最小值和下标。
let min = Math.min(...newArr)
let minindex = newArr.indexOf(min)
console.log(min, minindex) //最小值4,下标11