目录
Array.prototype.concat() 用于连接两个或多个数组。
Array.prototype.slice() 可从已有的数组中返回选定的元素、可提取字符串的某个部分,并以新的字符串返回被提取的部分。
Array.prototype.splice() 用于添加或删除数组中的元素。
Array.prototype.indexOf() 可返回数组中某个指定的元素位置。
Array.prototype.lastIndexOf() 可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。
操作方法
Array.prototype.concat() 用于连接两个或多个数组。
语法:array1.concat(array2,array3,...,arrayX)
参数值
返回值
// concat 连接数组 拼接两个及两个以上的数组
// 参数 需要拼接的数组 返回值 拼接后的数组 不改变原数组
var arr = ['world'];
var arr1 = ['hello'];
var arr2 = ['js'];
var res = arr1.concat(arr,arr2);
console.log(res,arr);
Array.prototype.slice() 可从已有的数组中返回选定的元素、可提取字符串的某个部分,并以新的字符串返回被提取的部分。
语法:array.slice(start, end)
参数值
返回值:
// slice() 截取元素
var arr = [1,2,3,4,5,6];
//参数 start end 返回从第一个下标开始到第二个下标(不包括第二个下标元素)截取元素组成的新数组 不改变原数组
var res = arr.slice(2,5);
console.log(res,arr);
// 参数start 返回从下标开始到末尾截取的元素组成的新数组 不改变原数组
var res = arr.slice(2);
console.log(res,arr);
// 参数start负数 返回从倒数下标开始到末尾截取的元素组成的新数组 不改变原数组
var res = arr.slice(-2);
console.log(res,arr);
// 参数start负数 end负数 返回从倒数第一个下标开始到倒数第二个下标(不包括第二个下标元素)组成的新数组 不改变原数组
var res = arr.slice(-4,-2);
console.log(res,arr);
// 参数start正数 end负数 返回从第一个下标开始到倒数第二个下标(不包括第二个下标元素)组成的新数组 不改变原数组
var res = arr.slice(2,-2);
console.log(res,arr);
// 参数start负数 end正数 返回从倒数第一个下标开始到第二个下标(不包括第二个下标元素)组成的新数组 不改变原数组
var res = arr.slice(-4,4);
console.log(res,arr);
// 参数大于等于数组长度 返回空数组
var res = arr.slice(6);
console.log(res,arr);
Array.prototype.splice() 用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。
语法 :
返回值 :
因会改变原数组,所以注释了起来,如需使用,请一个一个消除注释使用。
注释快捷键 Ctrl+/
// splice() 添加元素 / 删除元素 howmany可以不写 写了必须大于等于0;
var arr = [1,2,3,4,5];
// 参数index>0 返回从下标开始到末尾删除元素所组成的新数组 改变原数组
var res = arr.splice(2); //[ 3, 4, 5 ] [ 1, 2 ]
// 参数index>0 howmany>0 返回从下标开始删除howmany位元素所组成的新数组 改变原数组
// var res = arr.splice(2,2);
// 参数index>0 howmany>0 item 返回从下标开始删除howmany位元素所组成的新数组 改变原数组
// var res = arr.splice(2,2,'hello js')
// 参数index>0 howmany=0 item 返回空数组 改变原数组
// var res = arr.splice(2,0,'hello');
// 参数index<0 返回从倒数下标开始到末尾删除元素所组成的新数组 改变原数组
// var res = arr.splice(-2);
// 参数index<0 howmany>0 返回从倒数下标开始删除howmany位元素所组成的新数组 改变原数组
// var res = arr.splice(-4,2);
// 参数index<0 howmany>0 item 返回从倒数下标开始删除howmany位元素所组成的新数组 改变原数组
// 同上面没item 区别插入没插入新的内容
console.log(res,arr);
位置方法
Array.prototype.indexOf() 可返回数组中某个指定的元素位置。
该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。如果在数组中没找到指定元素则返回 -1。
语法:array.indexOf(item,start)
参数:
返回值:
// indexOf
var arr = [1,2,3,2,3,1,4,3];
// 参数要查找的值 从头开始查找 返回值 有则返回下标 无则返回-1 不改变原数组
var res = arr.indexOf(4);
console.log(res,arr);
// 参数要查找的值 从第几位开始查找 返回值 有则返回下标 无则返回-1 不改变原数组
var res = arr.indexOf(2,2);
console.log(res,arr);
Array.prototype.lastIndexOf() 可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。
该方法将从尾到头地检索数组中指定元素 item。开始检索的位置在数组的 start 处或数组的结尾(没有指定 start 参数时)。如果找到一个 item,则返回 item 从尾向前检索第一个次出现在数组的位置。数组的索引开始位置是从 0 开始的。如果在数组中没找到指定元素则返回 -1。
语法:array.lastIndexOf(item,start)
参数:
返回值:
// lastIndexOf
// 参数要查找的值 从末尾开始查找 返回值 有则返回下标 无则返回-1 不改变原数组
var res = arr.lastIndexOf(2);
console.log(res,arr);
// 参数要查找的值 从第几位开始查找 返回值 有则返回下标 无则返回-1 不改变原数组
var res = arr.lastIndexOf(2,2);
console.log(res,arr);
迭代方法
Array.prototype.every()
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
-
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
-
如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
语法:array.every(function(currentValue,index,arr), thisValue)
参数:
返回值:布尔值。如果所有元素都通过检测返回 true,否则返回 false。
// every 判断数组中每一个元素是否符合内部表达式
// 参数 函数(item,index,arr) 返回值:true false 只要有一项不符合就跳出循环 不修改原数组
var arr = [1,2,3,4,5];
var res = arr.every(function(item,index){
// 无第二个参数时,this指的是global
console.log(this);
// 当有第二个参数时,this指的是第二个参数
return item>1;
},'hello')
console.log(res,arr);
Array.prototype.some()
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
-
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
-
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
语法:array.some(function(currentValue,index,arr),thisValue)
参数:
返回值:布尔值。如果数组中有元素满足条件返回 true,否则返回 false。
// some 判断数组中有没有一个元素符合内部表达式
// 参数 函数(item,index,arr) 返回值:true false 只要有一项符合就跳出循环 不修改原数组
var arr = [1,2,3,4,5];
var res = arr.some(function(item){
return item >1;
})
console.log(res,arr);
Array.prototype.forEach()
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法:array.forEach(function(currentValue, index, arr), thisValue)
参数:
返回值:undefined。
// forEach for循环升级版
//
var arr = [1,2,3,4,5];
var res = arr.forEach(function(item,index,arr){
console.log(item);
console.log(index);
console.log(arr);
// 加上返回值也是undefined
return 10;
})
console.log(res,arr);
Array.prototype.filter()
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
语法:array.filter(function(currentValue,index,arr), thisValue)
参数:
返回值:返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
// filter 过滤出符合条件的数组元素组成的新数组
// 参数 function(item,index,arr){} 返回值:返回复合函数表达式的数组元素所组成的新数组 不修改原数组
var ages = [18,23,17,22,46];
var res = ages.filter(function(item,index,arr){
console.log(this);
return item > 22;
},'hello');
console.log(res,ages);
Array.prototype.map()
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
语法:array.map(function(currentValue,index,arr), thisValue)
参数:
返回值:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
// map方法 映射 对数组每一个元素进行处理返回一个新的数组
// 参数 function(item,index,arr){} 返回值:返回对每一个数组元素进行处理后的新数组 不修改原数组
var arr = [1,2,3,4,5];
var res = arr.map(function(item,index,arr){
return item*10;
})
console.log(res,arr);
var data = [
{id:1,name:'zhangsan'},
{id:2,name:'lisi'},
{id:3,name:'wangwu'},
{id:4,name:'terry'},
{id:5,name:'mary'},
]
var res = data.map(function(item){
return item.id
});
console.log(res);