数组的常用方法
基本用法
1.数组有length和下标
例子:
//1.数组有长度和下标
var cars = ["Saab", "Volvo", "BMW","AODI"];
console.log(cars.length);
console.log(cars[1]);
//2.数组for in循环(i是下标)
for(var i in cars){
console.log(i+' '+cars[i])
}
// 3.构造数组的两种方式
var arr = [10];
var arr1 = new Array(10); //new只有一位数的时候表示的是数组长度
var arr2 = new Array(1, 2, 3, 4)
console.log(arr)
console.log(arr1)
// 3.构造数组的两种方式
var arr4 = [];
console.log(arr4[10]) //undefined
arr[10] = 11;
console.log(arr4.length) //11
改变原数组:
1.push push()向数组末尾添加元素并返回,
2.pop pop()删除数组最后一个元素并返回值
3.shift shift()删除并返回第一个元素
4.unshift unshift()向数组头部添加元素并返回
5.sort sort()数组排序
6.reverse reverse()翻转数组
7.splice splice()删除元素,并向数组添加新元素 splice(index,count,item)
例子
//1.push()向数组末尾添加元素并返回
var push_arr=[5,4,3,2,1];
console.log(push_arr.push(0,-1)); // 7
console.log(push_arr) //[5, 4, 3, 2, 1, 0, -1]
//2.pop()删除数组最后一个元素并返回值
var pop_arr=[5,4,3,2,1];
console.log(pop_arr.pop()); //1
console.log(pop_arr) //[5,4,3,2]
//3.shift()删除并返回第一个元素
var shift_arr=[5,4,3,2,1];
console.log(shift_arr.shift()); // 5
console.log(shift_arr) //[4, 3, 2, 1]
//4.unshift()向数组头部添加元素并返回长度
var unshift_arr=[5,4,3,2,1];
console.log(unshift_arr.unshift(7,6)); // 7
console.log(unshift_arr) //[7, 6, 5, 4, 3, 2, 1]
//5.sort()数组排序
var sort_arr=[1,4,12,28,3];
sort_arr.sort();
console.log(sort_arr) //[1, 12, 28, 3, 4]
sort_arr.sort(function(a, b){
return a > b ? 1 : -1;
});
console.log(sort_arr) // [1, 3, 4, 12, 28]
//6.reverse()翻转数组
var reverse_arr=[5,4,3,2,1];
console.log(reverse_arr.reverse()) //[1, 2, 3, 4, 5]
//7.splice()删除元素,并向数组添加新元素 splice(index,count,item)
// 7.A替换 从第2个位置开始删除一个值再把后面的值添加进去
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
console.log(fruits) //["Banana", "Orange", "Lemon", "Kiwi", "Mango"]
//7.B删除前两位
fruits.splice(0,2);
console.log(fruits) //["Lemon", "Kiwi", "Mango"]
//7.C在前面添加
fruits.splice(0,0,"Lemon","Kiwi");
console.log(fruits) //["Lemon","Kiwi","Lemon", "Kiwi", "Mango"]
//7.D删除后几位
fruits.splice(-2,2);
console.log(fruits) //["Lemon","Kiwi","Lemon"]
//E在末尾添加
fruits.splice(3,0,"Lemon","Kiwi");
console.log(fruits) //["Lemon", "Kiwi", "Lemon", "Lemon", "Kiwi"]
不改变原数组:
1.concat concat()连接多个数组
2.join join()分割数组成字符串
3.slice slice()从某个已有的数组返回选定的元素
4.toString toString()把数组转换为字符串,并返回结果。
5.valueof valueof()返回数组对象的原始值
6.indexOf indexOf()返回一个元素在数组中的第一个下标
7.lastIndexOf lastIndexOf()返回一个元素在数组中的最后一个下标
例子:
//1.concat()连接多个数组
var num1=[1,2];
var num2=[3,4];
var result1=num1.concat(num2);
console.log(result1) //[1,2,3,4]
//2.join()分割数组成字符串
var join_arr=[1,2,'three','four'];
console.log(join_arr.join('/'))
//3.slice()从某个已有的数组返回选定的元素
var slice_arr=[5,4,3,2,1];
console.log(slice_arr.slice(1,2)); // [4]
console.log(slice_arr.slice(2,5)); // [3, 2, 1]
//4.toString() 把数组转换为字符串,并返回结果。
var string_arr=[1,4,12,28,3];
console.log(string_arr.toString()) //1,4,12,28,3
//5.valueof() 返回数组对象的原始值
var value_arr=[1,4,12,28,3];
console.log(value_arr.valueOf()) //[1,4,12,28,3]
// 6.indexOf() 和 lastIndexOf()
var ages = [32, 33, 16, 40,33];
//6.1 indexOf() 搜索数组中的元素,并返回它所在的下标。
console.log(ages.indexOf(33)); //1
//6.2 lastIndexOf() 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
console.log(ages.lastIndexOf(33)); //4
ES6
1.find find()
2.every every()方法后接函数,检测数组元素的每个元素是否都符合条件
3.filter filter() 检测数组元素,并返回符合条件所有元素的数组。
4.some some() 检测数组元素中是否有元素符合指定条件。
5.map map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
6.keys keys() 对数组索引的遍历
//1.find()
let arr=[1,2,234,'sdf',-2];
console.log(arr.find(function(x){
return x<=2; //结果:1,返回第一个符合条件的x值
})
)
arr.find(function(x,i,arr){
if(x<2){console.log(x,i,arr)}
})
//结果:1 0 [1, 2, 234, "sdf", -2],-2 4 [1, 2, 234, "sdf", -2]
//2.every()方法后接函数,检测数组元素的每个元素是否都符合条件。
function checkAdult(age) {
return age >= 18;
}
console.log(ages.every(checkAdult)); //false
//3.filter() 检测数组元素,并返回符合条件所有元素的数组。
console.log(ages.filter(checkAdult)); //[32, 33, 40]
// 4.some() 检测数组元素中是否有元素符合指定条件。
console.log(ages.some(checkAdult)); //true
//5.map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
var numbers = [4, 9, 16, 25];
console.log(numbers.map(Math.sqrt)); //平方根 ['2','3','4','5']
//6.keys() 对数组索引的遍历
var string = ['aaa','bbb','ccc','ddd'];
//遍历索引
var x = string.keys();
console.log(x.next().value) //x.next().value跟索引顺序一一对应
for(let a of string.keys()){
console.log(a) //0 1 2 3
}