日常代码中经常会对代码进行一些操作,复制、排序、查找、遍历等等,一些数组的方法总是记不住,所以写篇日记总结一下。
1. 数组的创建与赋值
创建一个数组,有三种方法。
下面的代码定义了一个名为 arr的数组对象:
1: 常规方式:
var arr=new Array();
arr[0]="Saab";
arr[1]="Volvo";
arr[2]="BMW";
2: 简洁方式:
var arr=new Array("Saab","Volvo","BMW");
3: 字面:
var arr=[];
arr= ["Saab","Volvo","BMW"]; //当然可以写在一行
2. 数组方法和属性
数组属性
constructor :返回创建数组对象的原型函数。
length:设置或返回数组元素的个数。
prototype:允许你向数组对象添加属性或方法。
例如:
//实例:创建一个新的方法。
Array.prototype.myUcase=function(){
for (i=0;i<this.length;i++){
this[i]=this[i].toUpperCase();
}
}
function myFunction(){
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.myUcase();
var x=document.getElementById("demo");
x.innerHTML=fruits;
}
- 数组方法
方法 | 描述 |
---|---|
concat() | 连接两个或更多的数组,并返回结果。 |
copyWithin() | 从数组的指定位置拷贝元素到数组的另一个指定位置中。 |
every() | 检测数值元素的每个元素是否都符合条件。 |
fill() | 使用一个固定值来填充数组。 |
filter() | 检测数值元素,并返回符合条件所有元素的数组。 |
find() | 返回符合传入测试(函数)条件的数组元素。 |
findIndex() | 返回符合传入测试(函数)条件的数组元素索引。 |
forEach() | 数组每个元素都执行一次回调函数。 |
indexOf() | 搜索数组中的元素,并返回它所在的位置。 |
join() | 把数组的所有元素放入一个字符串。 |
lastIndexOf() | 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。 |
map() | 通过指定函数处理数组的每个元素,并返回处理后的数组。 |
pop() | 删除数组的最后一个元素并返回删除的元素。 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
reduce() | 将数组元素计算为一个值(从左到右)。 |
reduceRight() | 将数组元素计算为一个值(从右到左)。 |
reverse() | 反转数组的元素顺序。 |
shift() | 删除并返回数组的第一个元素。 |
slice() | 选取数组的的一部分,并返回一个新数组。 |
some() | 检测数组元素中是否有元素符合指定条件。 |
sort() | 对数组的元素进行排序。 |
splice() | 从数组中添加或删除元素。 |
toString() | 把数组转换为字符串,并返回结果。 |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
valueOf() | 返回数组对象的原始值。 |
3. 关于数组的一些问题
- var arr = new Array(size); size == arr.length;
创建一个数组并指定长度,注意不是上限,是长度;也就是说即使创建数组指定了长度,但实际上所有情况下数组都是变长的,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。 所有的JavaScript变量都是对象。数组元素是对象。函数是对象。
因此,你可以在数组中有不同的变量类型。
你可以在一个数组中包含对象元素、函数、数组:“`
myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;