var arr = [1,2,3,4,5,6]; arr instanceof Array; // true Array.isArray(arr); // true
转换方法不改变原数组,只返回转换后的字符串javascript
var arr1 = [1,2,3,4,6]; var arr2 = ['a','b','c','d']; arr1.toString(); // '1,2,3,4,5,6' arr2.toString(); // 'a,b,c,d'
/* * join方法只接受一个参数,即用做分隔符的字符串, * 而后返回包含全部数组项的字符串 */ var arr = [1,2,3,4,5]; arr.join(''); // '12345' arr.join('-'); // '1-2-3-4-5'
1. 会改变原数组的操做方法php
/* * arr.push(arg1,arg2,arg3...) * push方法接收任意数量的参数,并逐个添加到目标数组末尾, * 返回值为目标数组修改后的长度 */ var arr = [1,2,3]; alert(arr.push(4,5)); // 5 alert(arr); // [1,2,3,4,5]
/* * arr.pop() * pop方法为从目标数组末尾移除一项,并返回该移除项 */ var arr = [1,2,3,4,5]; alert(arr.pop()); // 5 alert(arr); // [1,2,3,4]
/* * arr.shift() * shift方法为从目标数组开头移除一项,并返回该移除项 */ var arr = [1,2,3,4,5]; alert(arr.shift()); // 1 alert(arr); // [2,3,4,5]
/* * arr.unshift(arg1,arg2,arg3...) * unshift方法接收任意数量的参数,并逐个添加到目标数组开头, * 返回值为目标数组修改后的长度 */ var arr4 = [1,2,3]; alert(arr4.unshift(4,5)); // 5 alert(arr4); // [4,5,1,2,3]
/* * Array.splice(index,howmany,arg1,arg2...); * splice主要用途为向数组中插入项,方法主要为两种: * 删除: splice(要删除的第一项的位置,要删除的项数) * 插入或替换: splice(起始位置,要删除的项数,要插入的项数) * * 返回值为一个包含删除项的数组 */ // 删除 var arr1 = ['one','two','three']; var remove = arr1.splice(1,1); alert(remove); // ['two'] alert(arr1); // ['one','three'] // 插入 var arr2 = ['one','two','three']; var remove = arr2.splice(1,2,'four','five'); alert(remove); // ['two','three'] alert(arr2); // ['one','four','five'] // 替换 var arr3 = ['one','two','three']; var remove = arr3.splice(1,1,'four'); alert(remove); // ['two'] alert(arr3); // ['one','four','three']
2. 不会改变原数组的方法java
/* * Array.concat(arg1,arg2,arg3...) * concat方法为先建立当前数组一个副本,而后将接收的参数添加到副本末尾, * 最后返回该新数组 */ var arr = [1,2,3]; var a = ['one','two']; var b = 'three'; var c = { name: 'four'}; var newArr = arr.concat(a,b,c); alert(newArr); // [1,2,3,'one','three',{name:'four'}]
/* * Array.slice(start,end) * slice方法为截取数组,返回截取项组成的新数组 * slice 为一个参数时,截取该参数指定的开始项到数组的末尾 * slice 为两个参数时,截取参数指定的起始和结束项,但不包括结束项(包左不包右) */ var arr = [1,2,3,4,5,6,7,8,9]; var sliceArr1 = arr.slice(3); // [4,5,6,7,8,9] var sliceArr2 = arr.slice(3,5); // [4,5] var sliceArr3 = arr.slice(3,-1); // [4,5,6,7,8] var sliceArr4 = arr.slice(-3,-1); // [7,8] var sliceArr5 = arr.slice(-1,-3); // []
/* * indexOf(value,start),lastIndexOf(value,start) * 两方法都为数组查找方法,查找目标项成功则返回数组该值的索引, * 查找失败则返回-1 * 第一个参数为要查找的目标值,第二个参数查找的起始位置 * indexOf 为正序查找 * lastIndexOf 为逆序查找 */ var arr = ['one','two','two','three','four','four','five']; var index1 = arr.indexOf('two'); // 1 var index2 = arr.indexOf('two',2); // 2 var index3 = arr.lastIndexOf('four'); // 5 var index4 = arr.lastIndexOf('four',4); // 4
排序方法会改变原数组swift
/* * Array.reverse() * 翻转数组项的顺序 * */ var arr = [1,2,3,4,5]; arr.reverse(); alert(arr); // [5,4,3,2,1]
/* * Array.sort(callback) * sort为数组的排序方法,默认按数组每一项进行toString()后的结果进行 * 升序排序 * sort接收一个回调函数为参数,回调函数有两个参数,表明数组的前一项和 * 后一项,若是第一个参数应该位于第二个以前则返回一个负数,若是两个参数相等 * 则返回 0,若是第一个参数应该位于第二个以后则返回一个正数 */ var arr1 = [2,1,4,3,5]; var arr2 = [1,50,10,500,100,1000]; arr1.sort(); arr2.sort(); alert(arr1); // [1,2,3,4,5] alert(arr2); // [1,10,100,1000,50,500] arr2.sort(function(pre,next) { if(pre < next) { return -1; }else if(pre === next) { return 0; }else { return 1; } }); alert(arr2); // [1,10,50,100,500,1000]
数组的迭代方法都接收一个回调函数,这个回调函数会在数组的每一项上运行,回调函数接收三个参数:数组项的值,数组项的索引,数组对象自己。数组
var arr = ['one','two','three']; arr.forEach(function(item,index,thisArr) { // 迭代的item 为arr 每一项的值 // 迭代的index 为arr 每一项的索引 // thisArr 为 数组arr });
var arr = [1,2,3,4,5,6,7]; var filterArr = arr.filter(function(item,index,thisArr) { return item > 4; }); alert(filterArr); // [5,6,7]
var arr = [1,2,3,4,5,6,7]; var mapArr = arr.map(function(item,index,thisArr) { return item + 10; }); alert(mapArr); // [11,12,13,14,15,16,17]
var arr = [1,2,3,4,5,6,7]; var every1 = arr.every(function(item,index,thisArr) { // 对数组每一项与4进行比较 return item > 4; }); alert(every1); // false var every2 = arr.every(function(item,index,thisArr) { // 对数组每一项与8进行比较 return item < 8; }); alert(every2); // true
var arr = [1,2,3,4,5,6,7]; var some = arr.some(function(item,index,thisArr) { // 对数组每一项与4进行比较,只要有一项大于4,就返回true return item > 4; }); alert(some); // true
var arr = [1,2,3,4,5]; // 使用reduce进行数组求和操做 var sum = arr.reduce(function(pre,current,index,thisArr) { return pre + current; }); // reduceRight 则从相反方向,即从右向左迭代,结果一致 alert(sum); // 15