原生js方法数组
建立数组: var arr = []; var arr = new Array(); var arr = [1,2]; var arr = new Array(1,2,3); var arr = new Array(n);
注意:new Array定义数组,会根据参数个数不一样表明数组不一样内容
js中数组越界不报错!而是返回undefined
检测是否是数组:数据结构
arr instanceof Array //经过构造函数 Array.isArray(arr) Array.prototype.isPrototypeOf(arr) //经过原型 Object.prototype.toString.call(arr) //[Object Array]
遍历关联数组(哈希hash数组)app
for(var key in arr){ arr[key] 当前属性值 }
数组转成字符串用法函数
arr.valueOf() arr.toString() String(arr):将数组中每一个元素转为字符串,并用逗号链接。——拍照 arr.join("链接符"):将数组中每一个元素转为字符串,用自定义的"链接符"链接每一个元素。 arr.reverse()原数组会改变 arr.sort() 数组排序,按字符串大小排序 arr.concat(otherArr) 合并新元素,返回合并后的新数组 arr.slice(start,end)剪切数组,含头不含尾 注意:拼接和截取: 都没法直接修改原数组而是返回新数组,用变量接住 arr.split([ 起始位置 | 要删除元素的个数 | 要插入元素的值,能够写入多个值 ] )剪切数组/替 换/新增 arr.indexOf(item):返回第一个匹配到的元素在数组中所在的位置 or -1 arr.lastIndexOf(item) 注意:IE6, 7, 8 不支持indexOf与lastIndexOf方法
栈和队列:prototype
arr.push() 尾部添加元素,返回被新数组的长度 arr.pop() 尾部删除元素,返回被删除的元素 arr.unshift(item) 头部添加元素,返回新数组的长度 arr.shift(item) 头部删除元素,返回被删除的元素
ES5 API:code
注意:ES5数组API这些都不会改变原数组,新的数组要用变量接住 参数:[ 调用every的数组的每一项元素 | 对应元素所在的位置 | 表示该数组 ] arr.every(function(item,index,array){}) 该函数对每一项都返回true,则返回true arr.some(function(item,index,array){}) 该函数对其中一项返回true,则返回true arr.filter(callback):返回知足条件的元素组成的数组 arr.map(callback): 对数组每一项进行计算等处理,返回处理结果组成的数组。每一项的结果是true/false arr.reduce(fn) 前一个元素 | 当前元素,从1开始 | 后一个元素的序列,从1开始计数 | 表示该数组 ] _ var arr = [1,2,3,4,5]; var reduceArr = arr.reduce(function(pre,cur,index,array){ return prev + cur; }) //15
ES6 API
...[arr] 数组扩展运算符对象
Math.min(...[arr]) 等同于Math.min.apply(null,arr) 替换数组的apply方法 arr1.push(...arr2) 等同于Array.prototype.push.apply(arr1,arr2) 一个数组添加到另外一个数组的尾部 [...arr1,...arr2,...arr3] 等同于arr1.concat(arr2,arr3) 合并数组 let[first,...const]=[1,2,3,4],结果first=1,const=[2,3,4] 结合解构一块儿使用
Array.from() 将类数组对象和可遍历的对象转换为真正的数组(包括ES6新增的数据结构Set和Map)排序
Array.from(“hello”) [“h”,”e”,”l”,”l”,”o”] let person={ 0:'张三', 1:'李四', 2:'王五', length:3 //必需要设置对象长度 };
let arr=Array.from(person); 等同于let arr=[].slice.call(person);
Array.of(1,2,3) [1,3,4] 将一组值转换为数组 Array()会因参数个数致使行为有差别
Array.find(function(val,index,arr)) 找到第一个符合条件的数组成员Array.findIndex(function(val,index,arr)) 找到第一个符合条件的数组位置
这两个方法均可以发现NaN,弥补了数组的IndexOf方法的不足。
arr.includes(value,[start]) 能够找到NaN
jQuery相关方法队列
$.each(arr,function(key,value)) $.grep(arr,function(key,value)) //功能类同原生中的arr.filter(fn) $.unique(arr) 过滤DOM数组中重复的元素 $.makeArray(obj) 将类数组对象转换为数组 $(elem).toArray() 将jQuery对象集合恢复成DOM数组