数组的方法
- join (连接): 将数组中的所有元素转换为一个字符串
join() 方法用于把数组中的所有元素转换一个字符串。
var fruits = ['banner','apple','orange']
var str = fruits.join(); //join.html:12 banner,apple,orange
- unshift ( 前增) : 向数组的开头添加一个或多个元素返回新的长度 影响原数组
var fruits = ['banner','apple','orange']
var str = fruits.unshift('grape') //["grape", "banner", "apple", "orange"]
- push (后增) : 向数组的末尾添加一个或多个元素返回新的长度 影响原数组
var fruits = ['banner','apple','orange']
var str = fruits.push('grape') //[, "banner", "apple", "orange","grape"]
- shift (前删) : 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
var fruits = ['banner','apple','orange']
var str = fruits.shift()
console.log(str) //banner
5.pop (后删) :pop() 方法用于删除数组的最后一个元素并返回删除的元素。
var fruits = ['banner','apple','orange']
var str = fruits.pop()
console.log(str) //orange
- sort()方法用于对数组的元素进行排序 按照字符串的形式比大小
var number = ['8','2','4','3']
console.log(number.sort()) //2,3,4,8
var number = ['8','72','14','3']
console.log(number.sort()) //14,3,72,8
按数字大小排序
var number = ['8','72','14','3']
console.log(number.sort(function(a,b){
return a-b
})) //["3", "8", "14", "72"]
- reverse 颠倒数组中元素的顺序
var number = ['8','72','14','3']
console.log(number.reverse()) // ['3','14','72','8']
- concat (元素,元素)作用:在数组后面拼接新元素,如果新元素是一个数组则展开最外层数组拼接到后面
返回值:拼结后的新数组
是否会影响原数组: 否
var fruits = ['banner','apple'];
console.log(fruits.concat('orange')) //["banner", "apple", "orange"]
console.log(fruits) // ["banner", "apple"]
- slice (截) 下标的开始位置 下标的结束位置
作用: 截取指定范围内的元素
返回值: 截取到的元素数组
是否会影响原数组:否
// 一个参数时
var arr = [5,6,7,8,9];
console.log(arr.slice(1)); // [6, 7, 8, 9]
console.log(arr); // [5, 6, 7, 8, 9]
// 两个参数时
var arr = [5,6,7,8,9];
console.log(arr.slice(1,4)); [6, 7, 8]
console.log(arr)// [5, 6, 7, 8, 9]
包含开始不包含结尾
- splice 修改 (下标开始位置,删除元素的长度,新增元素,…)
作用: 在数组的任意位置进行增删查改
是否会影响原数组:是
// 一个参数时
var arr = [5,6,7,8,9];
console.log(arr.splice(1)) // 6,7,8,9
console.log(arr) //5 返回被删除的原数组
// 两个参数时
var arr = [5,6,7,8,9];
console.log(arr.splice(1,2)) // 6,7
console.log(arr)//[5, 8, 9]
// 三个参数时
var arr = [5,6,7,8,9];
console.log(arr.splice(1,2,false)) // [6, 7]
console.log(arr) //[5, false, 8, 9]
- indexof {元素,从哪个下标开始向右找} 查找在元素中第一次出现的下标位置如果没有找到返回-1
var arr = [5,6,7,8,9];
console.log(arr.indexOf(8,2)) //3
console.log(arr.indexOf(6,2)) //-1
- lastindexof {元素,从哪个下标开始向左找}查找在元素中第一次出现的下标位置如果没有找到返回-1
var arr = [5,6,7,8,9];
console.log(arr.lastIndexOf(8,2)) //-1
console.log(arr.lastIndexOf(6,2)) //1
- for Each (function(value,index,array)) 用于调用数组的每个元素,并将元素传递给回调函数。
var arr = [1,2,3,4,5];
arr.forEach(function(x,index,a){
console.log(x + '|' + index + '|' + (a===arr));
})
//1|0|true
//2|1|true
//3|2|true
//4|3|true
//5|4|true
- map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
第一个参数: 当前元素的值
第二个参数:可选。当前元素的索引值
第三个参数:可选。当前元素属于的数组对象
返回值: 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
var arr = [1,2,3,4,5];
var arr2 = arr.map(function(item){
return item*item
})
console.log(arr2)
//[1, 4, 9, 16, 25]
- filter 过滤 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
是否会影响原数组: 否
var arr = [1,2,3,4,5,6,7,8,9,10];
var arr2 = arr.filter(function(x,index){
return x > 8;
})
console.log(arr2) // 9 10
console.log(arr) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- every()
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
- 返回值:布尔值。如果数组中有元素满足条件返回 true,否则返回 false。
- 是否会影响原数组:否
var arr = [1,2,3,4,5,];
var arr2 = arr.every(function(x){
return x < 10
})
console.log(arr2) //true
console.log(arr) // [1, 2, 3, 4, 5]
var arr3 = arr.every(function(x){
return x > 10
})
console.log(arr3) //false
console.log(arr) // [1, 2, 3, 4, 5]
16.some() 判断数组中是否存在满足条件的项,只有一项满足条件就会返回true
返回值:布尔值。如果数组中有元素满足条件返回 true,否则返回 false。
是否会影响原数组:否
var arr = [1,2,3,4,5,];
var arr2 = arr.some(function(x){
return x < 2
})
console.log(arr2) //true
console.log(arr) // [1, 2, 3, 4, 5]