javascript Array对象基础
发布日期:2021-05-13 07:41:50 浏览次数:18 分类:博客文章

本文共 3747 字,大约阅读时间需要 12 分钟。

 

感觉自己对Array对象总是有种朦胧的感觉,今天自己手写总结,加深一下印象。

 

对于Array对象我的总结思想是:5法,3招,12

 

1.声明5:只针对一维数组,当然还有二维三维,这里就不做解释了

 

var
 a 
=
 
new
 Array();
var
 a 
=
 
new
 Array; 
var
 a 
=
 
new
 Array(
10
);
//
创建Array对象,并指定数组中项的个数   
var
 a 
=
 
new
 Array(
"
red
"
,
"
blue
"
,
"
green
"
);
var
 a 
=
 [
"
red
"
,
"
 blue
"
,
"
 green
"
];

 

 

2.属性3constructor,length,prototype

      constructor表示创建对象的函数。 constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。例如:

 

=
 
new
 String(
"
Hi
"
);
if
 (x.constructor 
==
 String)
   
//
 进行处理(条件为真)。
或 
function
 MyFunc {
   
//
 函数体。
}
=
 
new
 MyFunc;
if
 (y.constructor 
==
 MyFunc)
   
//
 进行处理(条件为真)。

 

 

Length表示数组的长度,有多少项。这个就不写示例了。

prototype返回对象类型原型的引用。用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。

例如,要为 Array 对象添加返回数组中最大元素值的方法。要完成这一点,声明该函数,将它加入 Array.prototype, 并使用它。

 

function
 array_max( ){
   
var
 i, max 
=
 
this
[
0
];
   
for
 (i 
=
 
1
; i 
<
 
this
.length; i
++
)
   {
   
if
(max 
<
 
this
[i])
      max 
=
 
this
[i];
   }
   
return
 max;
}
Array.prototype.max 
=
 array_max;
var
 x 
=
 
new
 Array(
1
2
3
4
5
6
);
var
 y 
=
 x.max( );

 

该代码执行后,y 保存数组 x 中的最大值,或说 6。

3.方法12式:concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法| unshift 方法| slice 方法| splice 方法| sort 方法| toString 方法| valueOf 方法

 

//
1.concat():返回一个新数组,这个新数组是由两个或更多数组组合而成的。
var
 a1 
=
 [
1
,
2
,
3
,
4
];
var
 a2 
=
 a1.concat(
"
5
"
,
'
6
'
);
alert(a2); 
//
结果:1,2,3,4,5,6
//
2.join():返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。
var
 a1 
=
 [
1
,
2
,
3
,
4
];
var
 a2 
=
 a1.join();
var
 a3 
=
 a1.join(
"
,
"
);
var
 a4 
=
 a1.join(
"
|
"
);
alert(a2); 
//
结果:1,2,3,4
alert(a3); 
//
结果:1,2,3,4
alert(a4); 
//
结果:1|2|3|4
//
3.pop():移除数组中的最后一个元素并返回该元素。如果该数组为空,那么将返回 undefined。
var
 a1 
=
 [
1
,
2
,
3
,
4
];
var
 item 
=
 a1.pop();
alert(item); 
//
结果:4
alert(a1);
//
结果:1,2,3
//
4.push():将新元素添加(追加)到一个数组中,并返回数组的新长度值。push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。
var
 a1 
=
 [
1
,
2
,
3
,
4
];
a1.push(
5
);
a1.push(
"
6
"
);
alert(a1);
//
结果:1,2,3,4,5,6
//
5.reverse():返回一个元素顺序被反转的 Array 对象。 
var
 a1 
=
 [
1
,
2
,
3
,
4
];
a1.reverse();
alert(a1);
//
结果:4,3,2,1
//
6.shift():移除数组中的第一个元素并返回该元素。
var
 a1 
=
 [
1
,
2
,
3
,
4
];
a1.shift();
alert(a1);
//
结果:2,3,4
//
7.unshift():将指定的元素插入数组开始位置并返回该数组。
var
 a1 
=
 [
1
,
2
,
3
,
4
];
a1.unshift(
5
);
alert(a1);
//
结果:5,1,2,3,4
//
8.slice():返回一个数组的一段。a1.slice(start, [end]),slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。
var
 a1 
=
 [
1
,
2
,
3
,
4
];
var
 a2 
=
 a1.slice(
-
1
);
var
 a3 
=
 a1.slice(
0
,
-
1
);
var
 a4 
=
 a1.slice(
1
);
alert(a2);
//
结果:4
alert(a3);
//
结果:1,2,3
alert(a4);
//
结果:2,3,4
//
9.splice():从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
//
arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
var
 a1 
=
 [
1
,
2
,
3
,
4
];
var
 a2 
=
 a1.splice(
1
,
0
);
var
 a3 
=
 a1.splice(
1
,
1
);
var
 a4 
=
 a1.splice(
1
,
1
,
"
5
"
);
alert(a2);
//
结果:
alert(a3);
//
结果:2
alert(a1);
//
结果:1,5,4
//
10.sort():返回一个元素已经进行了排序的 Array 对象。 
var
 a1 
=
 [
2
,
3
,
1
,
4
,
"
b
"
,
"
a
"
];
var
 a2 
=
 a1.sort();
alert(a2);
//
结果:1,2,3,4,a,b
//
11.toString():返回对象的字符串表示。
var
 a1 
=
 [
1
,
2
,
3
,
4
,
"
b
"
,
"
a
"
];
var
 a2 
=
 a1.toString();
alert(a2);
//
结果:1,2,3,4,b,a
//
12.valueOf():返回指定对象的原始值。
var
 a1 
=
 [
1
,
2
,
3
,
4
,
"
b
"
,
"
a
"
];
var
 a2 
=
 a1.valueOf();
alert(a2);
//
结果:1,2,3,4,b,a

 

 

indexOf扩展:

if
 (
!
Array.prototype.indexOf) Array.prototype.indexOf 
=
 
function
(item, i) {   
 i 
||
 (i 
=
 
0
);   
 
var
 length 
=
 
this
.length;   
 
if
 (i 
<
 
0
) i 
=
 length 
+
 i;   
 
for
 (; i 
<
 length; i
++
)   
    
if
 (
this
[i] 
===
 item) 
return
 i;   
 
return
 
-
1
;   
};   
function
 testIndexOf()   
{   
var
 a 
=
[
1
,
2
,
3
,
4
];   
alert(a.indexOf(
3
));   
}
<
input type
=
"
button
"
 value
=
"
测试获取数组下标
"
 onclick
=
"
testIndexOf()
"
 
/

 

 

上一篇:关于Javascript闭包的理解(一)
下一篇:Jquery常用技巧收集整理(1)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月11日 11时50分43秒