1.数组序列化(toString、join)
2.构造函数的方法(isArray、from、of)
3.栈与队列方法(push、pop、shift、unshift)
4.排序方法(reverse、sort)
5.操作方法(concat、slice、splice)
6.位置方法(indexOf、lastIndexOf)
7.迭代方法(every、some、filter、map、forEach)
1.数组序列化
- toString( )
将数组转为字符串,逗号分隔 - join( )
指定字符串分隔
例1:toString()
var arr1 = [1, 5, 44, 'new', { age: 17 }];
console.log(arr1.toString()); //1, 5, 44, new, [object Object]
例2:join()
var arr2 = [1, 5, 44, 'new', { age: 17 }];
console.log(arr2.join(' - ')); //1 - 5 - 44 - new - [object Object]
2.构造函数的方法
- Array.isArray( )
判断是否为数组 - Array.from( )
用类数组或可迭代对象,创建一个新数组 - Array.of( )
根据参数创建数组 (支持任意的参数数量和类型)
例1:Array.isArray()
var arr1 = [1, 5, 2, 8, 10];
console.log(Array.isArray(arr1)); //true
例2:Array.from()
var arr2 = Array.from("html5");
console.log(arr2); //['h', 't', 'm', 'l', '5']
例3:Array.of()
console.log(Array.of(1, 2, 4, 3)); //[1, 2, 4, 3]
3.栈与队列方法
- push( )
向数组末尾添加一个或多个元素,并返回新数组的长度 - pop( )
删除最后一个元素,并返回该元素 - shift( )
删除第一个元素,并返回该元素 - unshift( )
向数组开头添加一个或多个元素,并返回新数组的长度
- 注意:这4个方法,都会改变原数组
例1:push()
var arr1 = ["dog", "cat", "tiger"];
var num = arr1.push("duck");
console.log(arr1); //['dog', 'cat', 'tiger', 'duck']
console.log(num); //4
例2:pop()
var arr2 = ["dog", "cat", "tiger"];
var num = arr2.pop();
console.log(arr2); //['dog', 'cat']
console.log(num); //tiger
例3:shift()
var arr3 = ["dog", "cat", "tiger"];
arr3.pop();
console.log(arr3); //['dog', 'cat']
例4:unshift()
var arr4 = ["dog", "cat", "tiger"];
arr4.unshift('chicken', 'mouse');
console.log(arr4); //['chicken', 'mouse', 'dog', 'cat', 'tiger']
4.排序方法
- reverse( )
颠倒数组顺序 - sort( )
对数组进行排序
参数:
无参数,按照字符编码的顺序进行排序
如果要进行升序或降序排序的话,要提供比较函数
排序顺序可以是字母或数字,并按升序或降序
默认排序顺序为按字母升序
例1:reverse()
var arr1 = ["dog", "cat", "tiger", "duck"];
console.log(arr1.reverse()); //['duck', 'tiger', 'cat', 'dog']
例2:sort() //无参数
var arr2 = ["dog", "cat", "tiger", "duck", 40, 5];
arr2.sort();
//当数字是按字母顺序排列时"40"将排在"5"前面
//使用数字排序,你必须通过一个函数作为参数来调用
console.log(arr2); //[40, 5, 'cat', 'dog', 'duck', 'tiger']
例3:sort(sortfunction) //function函数作为参数
var arr3 = [44, 110, 1, 5, 30, 10];
arr3.sort(function(a, b) {
//return a-b 升序
//return b-a 降序
//return a=b 保持不变
return a - b
});
console.log(arr3); //[1, 5, 10, 30, 44, 110]
5.操作方法
- concat( )
连接两个或多个数组
不改变原数组,返回被连接数组的副本 - slice( )
提取字符串的某个部分,并以新的字符串返回
参数:
start 开始位置
end 结束位置(不包含)
参数可为负数,表示原数组中的倒数第几个元素 - splice( )
添加或删除数组中的元素
参数:
index
howmany
item1, …, itemX
返回值:
如果删除了元素,则返回的是被删除的元素的数组。
注意:
这种方法会改变原始数组
例1:array1.concat(array2,..,arrayX)
var arr1 = [1, 2, 3];
var arr2 = ['@', '#'];
var arr3 = ['a', 'b', 'c'];
var result = arr1.concat(arr2, arr3);
console.log(result); // [1, 2, 3, '@', '#', 'a', 'b', 'c']
例2:slice()
var arr2 = ["dog", "cat", "tiger", "duck"];
var intercept = arr2.slice(1, 3);
console.log(intercept); //['cat', 'tiger']
例3:splice() //向数组添加新元素
var arr3 = ["dog", "cat", "tiger", "duck"];
arr3.splice(2, 0, 'monkey', 'fish')
console.log(arr3); //['dog', 'cat', 'monkey', 'fish', 'tiger', 'duck']
例4:splice() //移除第三个元素,并添加新元素
var arr4 = ["dog", "cat", "tiger", "duck"];
arr4.splice(2, 1, 'monkey', 'fish')
console.log(arr4); //['dog', 'cat', 'monkey', 'fish', 'duck']
例5:splice() //从第三个位置开始,删除两个元素
var arr5 = ["dog", "cat", "tiger", "duck"];
arr5.splice(2, 2);
console.log(arr5); //['dog', 'cat']
6.位置方法
- indexOf( )
返回指定元素的位置,没有则返回 -1
参数:
item 要查找的元素
start 可选,开始检索的位置。没有则从头开始 - lastIndexOf( )
返回元素最后出现的位置,没有则返回 -1
参数:
item 要检索的字符串值
start 可选,开始检索的位置。没有则从最后一个字符开始
例1:indexOf()
var arr1 = ["dog", "cat", "tiger", "cat", "duck"];
var a = arr1.indexOf('cat');
console.log(a); //1
例2:lastIndexOf() //无参
var arr2 = ["dog", "cat", "tiger", "cat", "duck"];
var b = arr2.lastIndexOf('cat');
console.log(b); //3
例3:lastIndexOf() //有start参数
var arr3 = ["dog", "cat", "tiger", "cat", "duck"];
var c = arr3.lastIndexOf('cat', 2);
//从start位置,从后向前寻找
console.log(c); //1
7.迭代方法
- every( )
检测所有元素是否都符合条件(通过函数提供)
概述:
检测到不符合条件的元素,返回false,且后面的元素不会检索
所有元素满足条件,返回true
注意:
不会检测空数组
不改变原数组
参数:
array.every(function(currentValue,index,arr), thisValue)
currentValue 必须,当前元素的值
index 可选,当前元素的索引
arr 当前元素所属的数组对象
thisValue 可选,对象作为回调时,传递给函数,用作 “this” 的值。 如果省略 thisValue ,“this” 的值为 “undefined” - some( )
用于检测是否有满足条件的元素 - filter( )
返回一个新数组,数组元素是所有符合条件的元素 - map( )
返回新数组,数组元素为原数组调用函数处理后的值 - forEach( )
调用数组的每个元素,并将元素传递给回调函数
返回值:undefined
例1:every()
var arr1 = [30, 23, 16, 44];
var result = arr1.every(function(age) {
return age >= 18
})
console.log(result); //false
例2:some()
var arr2 = [30, 23, 16, 44];
var result = arr2.some(function(age) {
return age >= 40
})
console.log(result); //true
例3:filter()
var arr3 = [30, 23, 16, 44];
var result = arr3.filter(function(age) {
return age >= 25
})
console.log(result); //[30, 44]
例4:map()
var arr4 = [4, 9, 16, 25];
var result = arr4.map(function(num) {
return Math.sqrt(num)
})
console.log(result); //[2, 3, 4, 5]
例5:forEach()
var arr5 = ['张三', '李四', '王五', '赵六'];
arr5.forEach(function(name, index) {
console.log(index + ' -- ' + name);
})
// 0 -- 张三
// 1 -- 李四
// 2 -- 王五
// 3 -- 赵六