一、判断是否是数组
1.方法1(ECMAScript 5 定义的新方法)
var arr = [1,2,3,4,5]; console.log(arr.isArray())
2.方法2(自己定义方法)
var isArray = function(x) { return x.constructor.toString().indexOf("Array") > -1; } var arr=[1,2,3,4,5]; console.log(isArray (arr));
3.方法3(利用instanceof 运算符)
var arr = [1,2,3,4,5]; console.log(arr instanceof Array );
二、数组方法
1.原数组不受影响
toString() 把数组转换为数组值(逗号分隔)的字符串。
join() 方法也可将所有数组元素结合为一个字符串。【它的行为类似 toString(),但是您还可以规定分隔符:】
concat() 方法通过合并(连接)现有数组来创建一个新数组
slice() 方法用数组的某个片段切出新数组。
valueOf()返回数组对象的原始值。
forEach() 方法为每个数组元素调用一次函数(回调函数)【所有浏览器都支持 Array.forEach(),除了 Internet Explorer 8 或更早的版本】
reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。【所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本】
map() 方法通过对每个数组元素执行函数来创建新数组。【所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本】
filter() 方法过滤数组,返回一个新的数组。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
every() 方法检查所有数组值是否通过测试。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
some() 方法检查某些数组值是否通过了测试。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
indexOf() 方法在数组中搜索元素值并返回其位置。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
lastIndexOf()与 Array.indexOf() 类似,但是从数组结尾开始搜索 【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
find() 方法返回通过测试函数的第一个数组元素的值。(多个符合条件时只返回第一个值)【老旧的浏览器不支持 Array.find()。下面列出了完全支持此方法的首个浏览器版本】
findIndex() 方法返回通过测试函数的第一个数组元素的索引。【老旧的浏览器不支持 Array.find()。下面列出了完全支持此方法的首个浏览器版本】
2.原数组受影响
pop() 方法从数组中删除最后一个元素:
push() 方法(在数组结尾处)向数组添加一个新的元素
shift() 方法会删除首个数组元素
unshift() 方法(在开头)向数组添加新元素
splice() 方法可用于向数组添加删除元素
sort() 方法以字母顺序对数组进行排序
reverse() 方法反转数组中的元素。
三、数组迭代方法区别
1、forEach:遍历开始以后无法停止,如果要遍历整个数组,那就使用这个方法;
2、map:根据当前数组映射出一个新的数组;
3、some:遍历整个数组,返回值true就停止循环(返回false继续循环)
返回值:如果数组中的有一项回调函数返回true,那么结果为true,否则为false;(或者这样理解:数组别遍历完,那么结果为false,否则为true)
4、every:与some相反,返回false就停止循环(返回true就继续循环)
5、filter:过滤数组,返回一个新的数组
6、reduce:实现数据的累加