JS 类数组,字符串,转换成数组的方法

类数组转换成数组:
//定义一个类数组对象
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


 
posted @ 2018-01-04 14:36  Z-DL  阅读(1255)  评论(0编辑  收藏  举报