JS Array
具有多个值的变量叫数组,数组是集合;
Array是js原生底层的一种方法。
实例化数组: var a=new Array( ) 一. Array里面的参数:
- 带一个参数;
- 两个参数或者两个参数以上。
二. Array里面的方法:
1.截断数组 slice splice
1)slice:
语法:arrayObject.slice(start,end)
从哪个索引位开始到后边索引位结束(不包含后边的索引位) 且不影响原数组。
注意:可使用负值从数组的尾部选取元素。如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
2)splice:
语法:arrayObject.splice(index,howmany)
index为必需参数。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字;
howmany必需。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
从那个索引为开始,截取几个长度,并返回一个新数组,会影响原数组。
2.追加元素 push unshift
1)push():向数组的末尾添加一个或更多元素,并返回新的长度;
2)unshift():向数组的开头添加一个或更多元素,并返回新的长度。
3.concat sort
1)concat:
拼接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
2)sort:
快速排序;
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,即按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
例题: sort() 操作实现小到大 a.sort(function (num1,num2){ return num2-num1; }); console.log(a);
- Join
join() 方法用于把数组中的所有元素放入一个字符串;元素是通过指定的分隔符进行分隔的。
- split:
字符串转化为数组,里面参数是字符串里面的特有符号。
- pop:
删除最后一个元素,并将删除的元素返回。
6. forEach() 遍历数组 for( in ) 1)
a.forEach(function (value,index,arr){ console.log(value+"/"+index+"/"+arr); });
2) for( var key in a) { console.log(a[key]); }
7. map 映射 reduce 累加
1)map 映射
var c=a.map(function (value,index){
return value+index;
});
console.log(c);
2)reduce 累加
var b=a.reduce(function (x,y){
console.log(x+"/"+y);
return x+y;
});
console.log(b);
例题:求1-100的和:
var b=[ ];
for(var i=1;i<=100;i++)
{
b[i-1]=i;
}
var c= b.reduce(function (x,y){
return x+y;
});
console.log(c);
用reduce实现map的方法:
-
- var a=[2,5,2,4,3,7,6,11];
var c=a.map(function (x){
return x+x;
});
console.log(c);
2) var t=[ ];
var count=0;
var m=a.reduce(function (x,y){
if(count==0)t.push(a[count]+a[count]);
count++;
t.push(y+y);
});
console.log(t);
- var a=[2,5,2,4,3,7,6,11];
三.Array属性:
length: length 属性可设置或返回数组中元素的数目。
1.数组的 length 属性总是比数组中定义的最后一个元素的下标大 1,属性 length 声明了数组中的元素的个数。
2.数组的 length 属性在用构造函数 Array() 创建数组时被初始化。给数组添加新元素时,如果必要,将更新 length 的值。
3.设置 length 属性可改变数组的大小。如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined。