将数组输出为字符串

154 阅读1分钟

原数组

let  _arr = [1, 2, 3, [4, 5, [8, 9], 10, 11],'kaixin', 12];

第一种思路 递归

function changeCircle(arr){
    let new_arr = [];
    let inner_cicle = function (child){
        child.forEach (item => {
            if(item instanceof Array){
                inner_cicle(item);
            }else{
                new_arr.push(item);
            }
        })
    }
    inner_cicle(arr);
    return new_arr.join(',')
}
changeCircle(_arr)

第二种 修改valueOf 方法

let changeValueOf(arr){
    let originalValueOf = arr.prototype.valueOf;
    Array.prototype.valueOf = function (){
        return this.join(',');
    }
    let new_str = arr + ''
    Array.prototype.valueOf = originalValueOf;
    return new_str
}
changeVlueOf(_arr)

第三种 修改toString方法

let changeToString(arr){
    let originalToString = arr.prototype.toString;
    Array.prototype.toString = function (){
        return this.join(',');
    }
    let new_str = arr + ''
    Array.prototype.trString = originalToString;
    return new_str
}
changeVlueOf(_arr)

其实就是一下的代码

_arr.toString()