多维数组转一维数组------2019-03-31

多维数组的解释:简单点就是数组里面套数组,举个例子:let arr = [1,[2,[[3,4],5],6]];这个数组的第一个元素是数字1,第二个元素是一个数组,第二个数组元素的第一项是2,第二项又是一个数组,这就是多维数组;

碰到多维数组怎么办?

首先数组有三个所有对象都共有的方法:valueOf()、toString()、toLocaleString()

(1)数组调用valueOf()方法并没有什么影响, 返回的还是数组本身;

(2)数组调用toString()方法,为了将数组转换为以逗号分隔字符串,后台会默认做一件事,就是为数组中的每一个元素都调用一下toString()方法,这个方法也是数组元素默认调用的方法,

比如我们    alert(数组)时,alert默认接收的是字符串,因此系统会默认先将数组转换成字符串,这时,数组调用的是toString()方法,而不是toLocaleString()方法;数组中的每一项也是调用toString()方法;

(3)数组调用toLocaleString()方法,的结果和toString()方法相同,与toString()方法的不同就是,数组的每一项调用的也是toLocaleString()方法;

因此,碰到多维数组,我们直接调用数组的toString()方法,将数组转换成以逗号分隔的字符串,然后我们再调用字符串的split()方法,将字符串转成数组,注意的是,split()方法会将分割出的每一项都转换成字符串,我们需要按照需求,再对数组元素进行进一步操作;

来个简单例子:

       let arr = [1,[2,[[3,4],5],6]];

        let str = arr.toString().split(',')//将多维数组转换为:["1", "2", "3", "4", "5", "6"],需要进一步操作,将数组的每一项都转换为数字

        let temp=[]

        for(let i=0;i<str.length;i++){

            temp.push(Number(str[i]))

        }

        console.log(temp)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容