方法一:join() / split() 方法
// 方法一:join() split()
let arr = [1, 2, 3, 4, 5, [6, 7, 8, [9, 10, 11, 12, [13, 14, 15, 16], 17]], 18];
//数组转字符串
let newArr = arr.join();
console.log(newArr); // 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
// 字符串转数组
let newArray = newArr.split(',')
console.log(newArray) //["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16","17","18"],带引号
方法二:toString()方法
let arr = [1, 2, 3, 4, 5, [6, 7, 8, [9, 10, 11, 12, [13, 14, 15, 16], 17]], 18];
let newArr = arr.toString();
console.log(newArr) // 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
let newArray = newArr.split(',')
console.log(newArray) // ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16","17","18"],带引号
方法三:空字符串方法
let arr = [1, 2, 3, 4, 5, [6, 7, 8, [9, 10, 11, 12, [13, 14, 15, 16], 17]], 18];
console.log(arr + '') //1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
let newArr = (arr + '').split(',')
console.log(newArr) //["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16","17","18"],带引号
let numberArr = [] // 用于存放新的number类型的数组
newArr.forEach(function (data, index, arr) {
// console.log(data); data为字符串类型
let numData = parseInt(data)//转为数字
// console.log(numData);
numberArr.push(numData)
})
console.log(numberArr) // 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
方法四:递归函数
let arr = [1, 2, 3, 4, 5, [6, 7, 8, [9, 10, 11, 12, [13, 14, 15, 16], 17]], 18];
let newArr = [] // 存放转化后的一维数组
function getNewArr(arr) {
for (let i = 0; i < arr.length; i++) {
// 如果arr[i]是数组,调用循环数组函数继续循环,直到不是数组为止,递归
if (Array.isArray(arr[i])) {
getNewArr(arr[i])
} else {
newArr.push(arr[i])
}
}
}
getNewArr(arr)
console.log(newArr) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17,18]