js中的数组对象可以通过构造函数Array()来创建,但同时也可以用字面量表示,且更简单更可取。
var a = ["Ary","Snow","Sansa"];
console.log(typeof a);//输出"object",这是由于数组本身也是对象类型
console.log(a.constructor===Array);//true
var a = new Array();
a[0]="Ary";
a[1]="Snow";
a[2]="Sansa";
var a = new Array("Ary","Snow","Sansa");
//长度为3的数组
var a = new Array(3);
console.log(a.length);//3
console.log(a[0]);//undefined,这是因为只限定了数组长度,而数组中并不存在任何元素值
//具有一个元素的数组
var a =[3];
console.log(a.length);//1
console.log(a[0]);//3
//如果该值为数值,但小于0或不为整数,发生运行时错误。
var a = new Array(3.12);//Uncaught RangeError: Invalid array length(错误范围,不合法的数组长度)
console.log(a.length);//Cannot read property 'length' of undefined
console.log(a[0]);//Cannot read property '0' of undefined
console.log(typeof a);//输出"undefined"
constructor 属性 | length 属性 | prototype 属性
对象的constructor 属性用于返回创建该对象的函数,也就是我们常说的构造函数。
// 数组:Array()
var arr = [1, 2, 3];
document.writeln(arr.constructor); // function Array() { [native code] }
document.writeln(arr.constructor === Array); // true
因为一个数组中的元素并不一定是连续的,所以 length 属性也并不一定就等于数组中的元素个数。例如:
var my_array = new Array( );
my_array[0] = "Test";
my_array[6] = "Another Test";
my_array.length;//7
返回对象类型 原型 的引用。
Array.prototype.max = array_max;
返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。
arr.join(“”)
var a, b,c;
a = [0,1,2,3,4,'10','js'];
b = a.join("-");
c=a.join("");
console.log(b);//0-1-2-3-4-10-js
console.log(c);//0123410js
var str,str1,str2;
str = "这是一段话_很好的一段话_!";
str1=str.split("_",2);//["这是一段话", "很好的一段话"]
str2=str.split("");//["这", "是", "一", "段", "话", "_", "很", "好", "的", "一", "段", "话", "_", "!"]
方法 | 语法 | 参数 | 作用 |
---|---|---|---|
push | arrj.push(ele1,ele2,…,eleX) | 该 Array 的新元素,可选 | 向数组的尾部添加一个或多个元素,并返回新的长度 |
unshift | arrj.unshift (ele1,ele2,…,eleX) | 该 Array 的新元素,可选 | 向数组的头部添加一个或多个元素,并返回新的长度 |
pop | arr.pop() | 无,填入数值无作用 | pop() 方法用于删除并返回数组的最后一个元素。数组长度发生变化 |
shift | arr.shift() | 无,填入数值无作用 | shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。数组长度发生变化 |
**注意:**1、以上方法是直接对原数组进行的操作。2、使用pop,shift方法时,如果原数组为空,那么将返回 undefined。
3、个人为避免记错:(这四个方法,含有字母u的,都是添加操作,有参数;含有字母p的,都作用于数组尾部)
例:
var arr=['a','b','c','d'],arr0=[];
arrPush=arr;
for(var i=0;i<3;i++){
arr.push(i);
}
arr0.pop(); //undefined
console.log(arr);//["a", "b", "c", "d", 0, 1, 2]
arr.unshift("head"); //8
console.log(arr)//["head", "a", "b", "c", "d", 0, 1, 2]
arr.shift() //head
arr.shift() //"a"
arr.pop() //2
返回一个新数组,这个新数组是由两个或更多数组组合而成的。
arrayObject.concat(array1,array2,…,arrayN)
本方法在使用时,会进行两个操作:连接,复制
例:
var arr=[1,2,3];
console.log(arr.concat(4,5,"6"));//[1, 2, 3, 4, 5, "6"]
console.log(arr.concat(4,5,"6").join(""));//123456
console.log(arr.concat(arr,4,5,"6"));//[1, 2, 3, 1, 2, 3, 4, 5, "6"]
function ConcatArrayDemo(){
var a, b, c, d;
a = new Array(1,2,3);
b = "Hello";
c = new Array(42, "JavaScript");
d = a.concat(b, c);
return(d);
}
ConcatArrayDemo();//[1, 2, 3, "Hello", 42, "JavaScript"]