slice()
方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含结束)的数组元素。
var arr = [11,22,33,44,55];
console.log(arr.slice(1,3)); //[22,33] 返回选择的元素
console.log(arr); //[11,22,33,44,55] 不会改变原数组
split()
方法用于把一个字符串分割成字符串数组。
str="2,2,3,5,6,6"; //这是一字符串
var strs= new Array(); //定义一数组
strs = str.split(","); //字符分割
console.log(strs)
splice()
参数1.开始删除的位置,使用负数从结尾处规定位置
参数2.要删除元素的个数。
参数3.向数组中添加新的元素
var a = [11,22,33,44];
console.log(a.splice(1,0,88)); //[] 么有删除元素,所以返回空数组
console.log(a); // [11, 88, 22, 33, 44] 第三个参数,添加了88元素,在索引1位置
var b = [11,22,33,44];
console.log(b.splice(1,2,3)); //[22, 33] 返回删除的元素组成的数组
console.log(b); //[11, 3, 44] 尕布了原有的数组
indexOf()
返回数组的某个制定元素的位置,开始索引为0
如果不存在返回-1
var arr = [11, 22, 33, 33];
console.log(arr.indexOf(33)); // 2 第一次出现的位置
console.log(arr.indexOf(44)); // -1 不存在,-1
lastIndexOf()
返回一个指定的元素在数组中最后出现的位置,在一个数组中的指定位置从后向前搜索。
如果在数组中没找到指定元素则返回 -1。
toString()
把数组转换为字符串,并返回结果。
返回值与没有参数的 join() 方法返回的字符串相同。
var arr = new Array(3)
arr[0] = "11"
arr[1] = "22"
arr[2] = "33"
console.log(arr.toString()) // 11,22,33
forEach()
- 用于调用数组的每个元素,并将元素传递给回调函数。
- 没有返回值
- forEach() 对于空数组是不会执行回调函数的
- callback的参数:
- value --当前索引的值 必选
- index --索引 可选
- array --原数组 可选
var arr = [11,22,33,44]
arr.forEach((item, index) => {
// item 当前元素,必选
// index 当前元素的索引
// 匿名函数,是里面每一个item都会执行一次
})
map()
- 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- 按照原始数组元素顺序依次处理元素
- map() 不会对空数组进行检测
- map() 不会改变原始数组
let arr = [11,22,33,44,55]
let ret = arr.map( (value,index,array)=>{
console.log('value',value)
console.log('index',index)
console.log('array',array)
})
console.log(arr)
console.log(ret)
TIP
arr.forEach()和arr.map()
- arr.forEach()是和for循环一样,是for循环的替代品
- arr.map()是修改数组其中的数据,并返回新的数据
- arr.forEach() 没有return
- arr.map() 有return
filter()
- 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
- 返回true的项组成的数组
- filter() 不会对空数组进行检测。
- filter() 不会改变原始数组。
let arr = [11,22,33,44,55]
let arr1 = arr.filter( (i, v) => {
if(i < 33) {
return true
}
})
console.log(arr1) // [11, 22]
some()
- 数组中的每一项给定特定的函数,如果任一项返回true,则返回true
- 数组中任意一个元素满足条件,返回值就是true
function compare(element, index, array) {
return element > 44;
}
[11, 22, 33, 44, 55].some(compare); //true 有一个满足条件的,返回true
[11, 22, 33, 44].some(compare); // false 没有满足条件的,返回false
every()
- 对数组的每一项都运行给定的函数,每一项都返回 ture,则返回 true
- 如果有一项返回false,那么就返回false,并且结束循环
var arr = [11, 22, 33, 44];
var boolValue = arr.every(function (t) {
return t + 1 > 10;
});
console.log(boolValue); //true 每一项加1,都大于10