javascript数组及对象
- 数组
- 数组创建
var arr=[];//第一种空数组
var stu=new Array();//第二种空数组
var arr=['a','b','c','d'];
var stu=new Array('a','b','c','d');//Array 必须大写
创建一定长度但无内容的数组
var arr=new Array(10);
通过索引值来获取数组元素
即arr[index],
-
- 数组的遍历
var arr=['a','b','c','d','e','f','g'];
for(var i=0,len=arr.length;i<len;i++){
document.write(arr[i]+'<br/>');
}
-
- 数组的属性
Length:代表数组的长度
-
- 常用方法
join()方法:
此方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串。
也可以指定可选的字符串在生成的字符串中来分隔数组的各个元素。如果不指定分隔符,默认使用逗号。案例如下
var a=[1,2,3];
a.join();//=> "1,2,3" 因为没有指定分隔符,默认为逗号。
a.join("+");//=> "1+2+3" 指定分隔符为+
a.join("-");//=> "1-2-3" 指定分隔符为-
reverse()方法:
此方法将数组中元素进行倒序,返回倒序的数组,它是在原来数组中进行倒序,不产生的新数组,返回就是原来的数组,只不过里面元素已经进行倒序重排了。案例如下:
var a=[1,2,3];
a.reverse();// =>a=[3,2,1];
sort()方法:
此方法将数组中的元素排序,并返回排序好的数组。如果不传参数默认以字母表顺序进行排序。案例如下:
var a=[4,3,1,2]
a.sort();// =>[1,2,3,4]
a.sort(function(a,b){return a-b;});//=>[1,2,3,4] 降序排列
a.sort(function(a,b){return b-a;});//=>[4,3,2,1] 升序排列
concat()方法:
此方法创建并返回一个新数组,新数组中的元素包含调用数组的元素和concat()中传入参数的值,传入的参数可以是单独数值,也可以是数组,concat()不会递归扁平化数组的数组。案例如下:
var a=[5,6,7];
a.concat(1,2);// =>[5,6,7,1,2];
a.concat([1,2]);// =>[5,6,7,1,2];
a.concat(3,[1,2]);// =>[5,6,7,3,1,2];
a.concat([1,[2,3]]);// =>[5,6,7,1,[2,3]];
push()和 unshift()方法:
此方法就是向数组最后面添加元素,它返回的是新数组的长度;Array.unshift()方法就是向数组最前面添加元素,返回的是新数组的长度。案例如下:
var a=[1,2,3];
a.push(4,5);// a=[1,2,3,4,5]; 返回 值为5;
a.unshift(4,5);// a=[4,5,1,2,3]; 返回 值为5;☆传的参数可以一个,也可以多个。
pop()和 shift()方法:
此方法就是删除数组中最后一个元素,它返回是删除的元素;Array.shift()方法是删除数组最前面的元素,返回是删除的元素。
var a=[5,6,7];
a.pop();// a=[5,6]; 返回值为 7
a.shift();// a=[6,7]; 返回值 5
-
- 案例
数组去重
<script type="text/javascript">
var a = prompt("请输入一个数字:");
var arr = new Array(1, 2, 3, 4, 5);
var z = 0;
for(var i = 0; i < arr.length; i++) {
if(a == arr[i]) {
z = 1;
break;
}
}
if(z == 0) {
arr.push(a);
} else {
alert("该数据在数组里面已存在!");
}
for(var i in arr){
document.write(arr[i]);
}
</script>
- 对象
- 创建一个对象
//和创建数组的"[]"不一样,创建对象用{}
创建语法:{属性1:值1,属性2:值2}
第一种:Object构造函数创建
var Person = new Object();
Person.name = 'Nike';
Person.age = 29;
第二种:使用对象字面量表示法
var stu={
name:'xiaoming',
age:22,
number:'007',
score:99,
};
第三种:使用构造函数创建对象
function Person(name,age){
this.name="tom";
this.age=18;
this.show=function(){
return "aaa";
}
}
-
- 获取对象属性
alert(stu['name']);
alert(stu.name);
-
- 遍历对象
for(per in obj){
}
var stu={
name:'xiaoming',
age:22,
number:'007',
score:99
};
for(per in stu){
document.write(stu[per] + "<br/>");
}
//这里stu[per]不能写成stu['per'],和直接用属性值不一样
//这里也不能用stu.per,
注意:
在for in结构中,循环得到的属性,取值时不能用 obj.属性 的方式
-
- 删除对象属性
delete obj.属性;