类数组转换成数组:
//定义一个类数组对象 let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; //1.ES5的写法 var arr1 = Array.prototype.slice.call(arrayLike); var arr2 = [].slice.call(arrayLike); //2. ES6的写法 let arr3 = Array.from(arrayLike) //打印的结果: console.log(arr1) //['a','b','c'] console.log(arr2) //['a','b','c'] console.log(arr3) //['a','b','c']
//3. 任何 Iterator 接口的对象(参阅 Iterator),都可以用扩展运算符转为真正的数组。 let nodeList = document.querySelectorAll('div'); let array = [...nodeList]; //对于那些没有部署 Iterator 接口的类似数组的对象,扩展运算符就无法将其转为真正的数组。 let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // TypeError: Cannot spread non-iterable object. let arr = [...arrayLike]; // 上面代码中,arrayLike是一个类似数组的对象,但是没有部署 Iterator 接口,扩展运算符就会报错。这时,可以改为使用Array.from方法将arrayLike转为真正的数组。
字符串转换成数组:
//定义一个字符串 let str = 'abc' //ES5的写法 let arr = [].slice.call(str) let arr1 = str.split('') //ES6的写法 let arr2 = [...str] //打印的结果 console.log(arr) //['a','b','c'] console.log(arr1) //['a','b','c'] console.log(arr2) //['a','b','c']
数组转成字符串:
//定义一个数组 let arr = [1,2,3,4,5] //方法一 let str = arr.join('') //方法二 let str1 = arr.toString().replace(/,+/g,""); //打印的结果 console.log(str) // 12345 console.log(str1) // 12345