前提摘要;今天在用数组的push方法给数组增加数据后,再使用map方法遍历数组的时候一直报错map is not function。看到这个报错百思不得其解,在控制台输出数组的时候,数据确实已经添加进去了。但是一遍历的时候就有问题了。看到这个问题一开始就知道了是数据数据类型变了。于是用typeof检测一下。检测结果也是object类型。这时就一脸懵逼了。然后就去度娘了一下。发现push方法返回的数组的长度,并不是修改后的数组。但是实际上数组是已经被修改过了。于是稍微修改一下就解决问题了。

1、push()、pop()和unshift()、shift()
这两组同为对数组的操作,并且会改变数组的本身的长度及内容。
不同的是 push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。
var arr = [1, 2];
2、push()和unshift()
向数组的 尾部/头部 添加若干元素,并返回 数组的 新长度;
arr.push(3,4); //返回 arr 的新长度 4
arr ; // arr = [1,2,3,4];
arr.unshift(0,0.5); // 返回 arr 的新长度 6
arr ; // arr = [0,0.5,1,2,3,4];
3、pop()和shift()
从数组的 尾部/头部 删除1个元素(删且只删除1个),并返回 被删除的元素;空数组是继续删除,不报错,但返回undefined;
arr.pop(); //返回 4;
arr ; // arr = [0,0.5,1,2,3];
arr.pop(); //返回 3;
arr ; // arr = [0,0.5,1,2];
arr.shift(); // 返回 0 ;
arr ; // arr = [0.5,1,2]
浙公网安备 33010602011771号