JS基础学习-数组
数组
length
获取当前数组中数据的个数
定义数组
字面量方式
var arr = [1,2,3,4,5];
构造函数方式
var arr1 = new Array(1,2,3,4,5);
索引数组
JavaScript默认定义的数组都是索引数组
var obj = new Object();
var arr = [];
var arr1 =[100,’string’,true,undefined,null,obj ,arr];
//数组的调用
console.log(arr1[1]);//string
关联数组
var arr2 = new Array();
arr2[‘name’]= ‘zhangwuji’;
arr2[‘age’] = 18;
console.log (arr2[‘name’]);//zhangwuji
稀疏数组
遍历循环数组时,length属性失效
示例
var arr3 = new Array(10);//如果参数个数为一个时–表示数组的长度
arr3[5]= ‘string’;
console.log(arr3);//[ , , , , , ‘string’, , , , ]
操作数组
新增
var arr=[1,2,3,4,5,6,7,8,9];
arr[arr.length]=’string’;
console.log(arr);
修改
var arr=[1,2,3,4,5,6,7,8,9];
arr[4]=true;
console.log(arr);
删除
var arr=[1,2,3,4,5,6,7,8,9];
delete arr[7];
console.log(arr);
只删除对应位置的数据,位置保留
循环数组
循环语句–for为主
var arr = [1,2,3,4,5,6,7,8,9,0];
for (var i =0;i<arr.length;i++){
console.log(arr[i]);
}
for (var i in arr){
console.log(arr[i]);
}
for (var i of arr){
console.log (i);
}*/
二维数组
定义二维数组
var arr=[[1,2,3,],[11,22,33,],[21,31,41]];
遍历二维数组
for (var i=0;i<arr.length;i++){
console.log(arr[i]);
for (var j=0; j<arr[i].length; j++){
console.log(arr[i][j]);
}
}
检测数组
Array.prototype.isPrototypeOf( [] ):
返回 true/false
示例
var arr=[1,2,3,4,5,6,7,8,9,0];
console.log (Array.prototype.isPrototypeOf(arr));//true
Array.isArray():返回 true/false
示例
var arr=[1,2,3,4,5,6,7,8,9,0];
console.log(Array.isArray(arr));//true
Object.prototype.toString.call()方法
Object是构造函数–new Object()
具有prototype原型属性
在原型上定义一个toString()
方法/函数都是Function类型
Function提供的方法–call()
进出栈
push()和pop()方法
向数组末尾添加元素
对象名.push(’元素’);
示例
var colors =[“red”, “blue”, “green”];
colors.push(‘yellow’);
console.log(colors);//[ ‘red’, ‘blue’, ‘green’, ‘yellow’ ]
从数组的末尾删除元素
对象名.pop();
示例
var colors =[“red”, “blue”, “green”];
colors.pop();//从数组的末尾删除元素
console.log(colors);//[ ‘red’, ‘blue’ ]
shift()和unshift()方法
向数组的第一个位置添加元素
对象名.unshift(‘元素’);
示例
var colors =[“red”, “blue”, “green”];
colors.unshift(‘yellow’);
console.log(colors);//[ ‘yellow’, ‘red’, ‘blue’, ‘green’ ]
从数组的第一个位置删除元素
对象名.shift();
示例
var colors =[“red”, “blue”, “green”];
colors.shift();//
console.log(colors);//[‘blue’, ‘green’ ]*/
排序方法
var values = [ 0, 1, 5, 10, 20 ];
reverse()
反转数组的元素顺序
console.log( values.reverse() );// 20,10,5,1,0
sort()
对数组的元素进行排序
console.log( values.sort() );// 0,1,10,20,5
按照首字母的顺序排序
操作方法
截取数组
slice(start,end方法
start
表示截取的开始位置
end
(可选项)表示截取的结束位置,不包括end数据当前位置
如果默认省略,表示截取到当前数组的最后
如果start和end为负值的话,表示从右向左计算
示例
var arr = [1,3,5,7,15,20];
var result = arr.slice(0,2);//[ 1, 3 ]
var result= arr.slice(3);//[ 7, 15, 20 ]
var result = arr.slice(-3,5);//[ 7, 15 ]
var result = arr.slice(-3,-1);//[ 7, 15 ]
console.log(result);
splice(index,howmany)
删除操作
index
表示添加或删除的位置
howmany
表示删除的个数
返回值
表示被删除的内容
示例
var arr = [1,3,5,7,15,20];
var result = arr.splice(1,1);
console.log(result);//3
console.log(arr);//[ 1, 5, 7, 15, 20 ]
添加操作
示例
var arr = [1,3,5,7,15,20];
var result=arr.splice(1,0,25,26);
console.log(result);
console.log(arr);//[ 1, 25, 26, 3, 5, 7, 15, 20 ]
替换操作
示例
var arr = [1,3,5,7,15,20];
var result = arr.splice(1,1,4);
console.log(result);
console.log(arr);//[ 1, 4, 5, 7, 15, 20 ]
位置方法
indexOf()方法
从左到右搜索,找到直接返回
lasIndexOf()方法
从右到左搜索,找到直接返回
如果搜索的内容不存在
直接返回-1