什么是伪数组?
伪数组具有以下特征:
- 具有length属性
- 能够使用数组遍历方法遍历它们
- 不具有数组的push,pop等方法
伪数组有哪些?
函数的argument参数;还有像调用getElementsByTagName;document.childNodes之类的
它们都返回NodeList对象,都属于伪数组
var obj5 = { name: ‘wangcai’ , age: ‘ 99’ }这样的数据也是伪数组
真伪数组如何判断?
let arr = [1,2,3];
let arr1 = {naem:'wangcai',age:'99'};
console.log(Array.isArray(arr)); //true
console.log(Array.isArray(arr1)); //false
将伪数组转换为数组的几个方法
方法一:
let newArr1 = Array.prototype.slice.call(arr1);
console.log(Array.isArray(newArr1)); //true
方法二
let newArr1 = Array.from(arr1);
console.log(Array.isArray(newArr1)); //true
方法三
对于伪数组arguments可以使用ES6里面的..…运算符
// 对于伪数组arguments可以使用ES6里面的...运算符
function fn (){
console.log(arguments); //Arguments { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, … }
console.log(Array.isArray(arguments)); //false
let newArr1 = [...arguments];
console.log(Array.isArray(newArr1)); //true
}
fn(1,2,3,4,5);