push()
push(itemOne,itemTwo,...)
说明:向数组的末尾添加元素
参数:要添加的元素
返回值:添加后数组的长度
是否会改变原数组:是
var arr = [1, 2, 3]
var ret = arr.push(4, 5, 6)
console.log(ret) // 6
console.log(arr) // [1, 2, 3, 4, 5, 6]
pop()
pop()
说明:删除末尾的一个元素
参数:无
返回值:被删除的元素
是否会改变原数组:是
var arr = [1, 2, 3]
var ret = arr.pop()
console.log(ret) // 3
console.log(arr) // [1, 2]
unshift()
unshift(itemOne,itemTwo,...)
说明:向数组的开头添加元素
参数:要添加的元素
返回值:添加后数组的长度
是否会改变原数组:是
var arr = [1, 2, 3]
var ret = arr.unshift(4, 5, 6)
console.log(ret) // 6
console.log(arr) // [4, 5, 6, 1, 2, 3]
shift()
shift()
说明:删除开头的一个元素
参数:无
返回值:被删除的元素
是否会改变原数组:是
var arr = [1, 2, 3]
var ret = arr.shift()
console.log(ret) // 1
console.log(arr) // [2, 3]
join()
join(str)
说明:将数组的元素用字符串拼接起来形成一个新的字符串
参数:拼接的字符串(若无参数则默认为逗号分隔)
返回值:拼接后的结果
是否会改变原数组:否
var arr = [1, 2, 3]
var ret = arr.join('-')
console.log(ret) // 1-2-3
console.log(arr) // [1,2,3]
reverse()
reverse()
说明:倒置数组
参数:无
返回值:倒置后的数组
是否会改变原数组:否
var arr = [1, 2, 3]
var ret = arr.reverse()
console.log(ret) // [3, 2, 1]
console.log(arr) // [1, 2, 3]
slice()
slice(startIndex,endIndex)
说明:在数组中,从startIndex下标开始一直截取到endIndex下标之前(不包含endIndex下标的元素)
参数:开始和结束的下标
返回值:截取的数组
是否会改变原数组:否
var arr = [1, 2, 3, 4, 5, 6]
var ret = arr.slice(1, 3)
console.log(ret) // [2, 3]
console.log(arr) // [1, 2, 3, 4, 5, 6]
splice()
splice(startIndex,count,itemOne,itemTwo,...)
说明:在数组中添加或者删除一些元素
参数:开始的下标,删除元素的个数(若为0则不删除),要添加的元素(可选)
返回值:含有被删除的数组
是否会改变原数组:是
//删除元素的个数不为0
var arr = [1, 2, 3, 4, 5, 6]
var ret = arr.splice(1, 3, 10, 11)
console.log(ret) // [2, 3, 4]
console.log(arr) // [1, 10, 11, 5, 6]
//删除元素的个数为0
var arr = [1, 2, 3, 4, 5, 6]
var ret = arr.splice(1, 0, 10, 11)
console.log(ret) // []
console.log(arr) // [1, 10, 11, 2, 3, 4, 5, 6]
concat()
concat(arrOne,arrTwo,...)
说明:将多个数组拼接在一起
参数:两个或多个数组或值
返回值:拼接后的新数组
是否会改变原数组:否
var arr = [1, 2, 3, 4, 5, 6]
var arr2 = [7, 8, 9]
var ret = arr.concat(arr2, true, 'hello')
console.log(ret) // [1, 2, 3, 4, 5, 6, 7, 8, 9, true, 'hello']
console.log(arr) // [1, 2, 3, 4, 5, 6]
indexOf()
indexOf(item,[fromIndex])
说明:从数组左侧到右侧开始查找该值是否在数组中
参数:要查找的元素,[开始查找的位置]
返回值:首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1
是否会改变原数组:否
var arr = ['a', 'b', 'c', 'd', 'c', 'f'];
var ret = arr.indexOf('c');
var retFromLeft = arr.indexOf('c', 1); //从a开始往后查找
var retFromRight = arr.indexOf('c', -1); //从f开始往后查找
var retNo = arr.indexOf('m');
console.log(ret); // 2
console.log(retFromLeft); // 2
console.log(retFromRight); // -1
console.log(retNo); // -1
console.log(arr); // ['a', 'b', 'c', 'd', 'c', 'f']
lastIndexOf()
lastIndexOf(item,[fromIndex])
说明:从数组右侧到左侧开始查找该值是否在数组中
参数:要查找的元素,[开始查找的位置]
返回值:首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1
是否会改变原数组:否
var arr = ['a', 'b', 'c', 'd', 'c', 'f'];
var ret = arr.lastIndexOf('c');
var retFromLeft = arr.lastIndexOf('c', 4); //从d开始往后查找
var retFromRight = arr.lastIndexOf('c', -1); //从f开始往后查找
var retNo = arr.lastIndexOf('m');
console.log(ret); // 4
console.log(retFromLeft); // 4
console.log(retFromRight); // 4
console.log(retNo); // -1
console.log(arr); // ['a', 'b', 'c', 'd', 'c', 'f']
every()
every(function(item,index,array))
说明:测试一个数组内的所有元素是否都能通过某个指定函数的测试
参数:当前的值,当前值的索引,调用该方法的数组
返回值:如果回调函数的每一次返回都为 true,返回 true ,否则返回 false。
是否会改变原数组:否
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var retFalse = arr.every(function (item, index, arr) {
return item > 5;
});
var retTrue = arr.every(function (item, index, arr) {
return item < 0;
});
console.log(retFalse); // false
console.log(retTrue); // true
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filter()
filter(function(item,index,array))
说明:创建一个新数组, 其包含通过所提供函数实现的测试的所有元素
参数:当前的值,当前值的索引,调用该方法的数组
返回值:一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。
是否会改变原数组:否
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var retTrue = arr.filter(function (item, index, arr) {
return item > 5;
});
var retFalse = arr.filter(function (item, index, arr) {
return item > 11;
});
console.log(retTrue); //[]
console.log(retFalse); // [6, 7, 8, 9, 10]
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
find()
find(function(item,index,array))
说明:查找第一个满足条件的值
参数:当前的值,当前值的索引,调用该方法的数组
返回值:数组中第一个满足所提供测试函数的元素的值,否则返回 undefined
是否会改变原数组:否
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var ret = arr.find(function (item, index, arr) {
return item > 5;
});
console.log(ret); // 6
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
map()
map(function(item,index,array))
说明:创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值
参数:当前的值,当前值的索引,调用该方法的数组
返回值:一个由原数组每个元素执行回调函数的结果组成的新数组
是否会改变原数组:否
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var ret = arr.map(function (item, index, arr) {
return item * 2;
});
console.log(ret); // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
some()
some(function(item,index,array))
说明:测试数组中是不是至少有1个元素通过了被提供的函数测试
参数:当前的值,当前值的索引,调用该方法的数组
返回值:数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false
是否会改变原数组:否
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var retTrue = arr.some(function (item, index, arr) {
return item > 5;
});
var retFalse = arr.some(function (item, index, arr) {
return item > 11;
});
console.log(retTrue); // true
console.log(retFalse); // false
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]