给定一个一维数组,如[1, 3, [4, 5, 6, [3, 5, 7, 9]]]。 要求变成一维数组且去重为 [1, 3, 4, 5, 6, 7, 9]
JS技巧降维
let arr=[1, 3, [4, 5, 6, [3, 5, 7, 9]]]
//3种降维方法
//方法一:使用数组的join()
let newArr1 = arr.join().split(',')
console.log(newArr1)
// 方法二:使用toString()方法
let newArr2 = arr.toString().split(',')
console.log(newArr2)
// 方法三: 使用空字符串的方法
let newArr3 = (arr + '').split(',')
console.log(newArr3)
//去重
var newarr1=unique(newArr1)
console.log(newarr1)
var newarr2=unique(newArr2)
console.log(newarr1)
var newarr3=unique(newArr3)
console.log(newarr1)
function unique(arr){
var Arr=[]
for(var i=0
{
if(Arr.indexOf(arr[i])===-1)//indexOf()返回某个指定的字符串值在字符串中首次出现的位置。如果为-1则为Arr中没有arr[i]这个值
{
Arr.push(arr[i])
}
}
return Arr
}
递归降维
let arr=[1, 3, [4, 5, 6, [3, 5, 7, 9]]]
var newarr=[]
function jc(arr) {
for(var i=0
if(arr[i] instanceof Array){
jc(arr[i])
}
else{
newarr.push(arr[i])
}
}
}
jc(arr)