JavaScript之Array对象的操作


Array 对象用于在单个的变量中存储多个值。

一、数组创建

创建Array对象的语法有三种:

1. var arr = new Array();

2.var arr1 = new Array(size);

3.var  arr2 = new Array(ele0,ele1…);

说明:第一种创建方式返回的是一个空数组,length字段为0

第二种的size指的期望的数组元素的个数。其lengthsize的值。   虽然此方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。

第三种参数ele0ele1...是参数列表。当使用这些参数来调用构造函数Array()时,新创建的数组的元素就会被初始化为这些值。它的length字段也会被设置为参数的个数。

二、Array对象的属性

constructor  — 返回对创建此对象的数组函数的引用

length — 设置或返回数组中元素的数目

prototype — 是我们有能力向对象添加属性和方法


例子添加属性:

function employee(name,job,born)

{

this.name=name;

this.job=job;

this.born=born;

}

var bill=new employee("Bill Gates","Engineer",1985);

employee.prototype.age = null;

bill.age = 21;

document.write(bill.age);

console.log(bill.age);


三、Array的对象方法

1.concat()  —   连接两个或更多的数组,并返回结果。

   比如

var a = [1,2,3];

document.write(a.concat(4,5));

 输出的结果是

1,2,3,4,5

但是原来的数组a还是[1,2,3];也就是说a.concat(4,5)返回的就是一个数组

2.join()把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分割

   比如我们创建一个数组,然后把它的所有元素放入一个字符串

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

document.write(arr.join())

document.write(arr.join(“.”))

输入的结果是

George,John,Thomas

George.John.Thomas

arr.join(“.”)就是用’.’分割 

3.pop() — 删除并返回数组的最后一个元素

   比如,我们创建一个元素,然后再删除最后一个元素:

var a = [1,2,3];

var b = a.concat(4,5);

console.log(a,b);

var arr = new Array(3);

arr[0] = "tom";

arr[1] = "Jim";

arr[2] = "bill";

var bb = arr.pop();

console.log(bb,arr);

输出的结果是:

bill  ["tom", "Jim"]

4.push()向数组的末尾添加一个或多个元素,并返回新的长度

比如  

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

console.log(arr.push("James") , arr )

  输出的结果 

4 ["George", "John", "Thomas", "James"]  

5.reverse()颠倒数组中的元素顺序

var  arr = new Array("123","124","125");

var bb =  arr.reverse();

console.log(arr,bb);

输出结果:["125", "124", "123"]  ["125", "124", "123"]

6.shift()删除并返回数组的第一个元素

var  arr = new Array("123","124","125");

var bb =  arr.reverse();

  console.log(arr.shift(),arr);

输出结果:

    125,["124", "123"]

7.slice()从某个已有的数组返回选定的元素

语法格式:arrayObject.slice(start,end)

     start — 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

    end — 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

注意:原数组不会发生变化。

var  arr = new Array("123","124","125","126","127","128");

 console.log(arr.slice(1, 3),arr);

输出结果:

   ["124", "125"] ["123", "124", "125", "126", "127", "128"]


8.sort()对数组的元素进行排序

    语法格式:arrayObject.sort(sortby)

sortby — 可选。规定排序顺序。必须是函数。

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a b,其返回值如下:

  • a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • a 等于 b,则返回 0
  • a 大于 b,则返回一个大于 0 的值。


创建一个数组,并按字母顺序进行排序:

var  arr = new Array("133","114","155","146","107","128");

 console.log(arr.sort(),arr);

输出结果:

["107", "114", "128", "133", "146", "155"] ["107", "114", "128", "133", "146", "155"]

按照数值的大小对数字进行排序:


function sortNumber(a,b)

{

return a - b;

}


var  arr = new Array("133","114","155","146","107","128");

 

 console.log(arr.sort(sortNumber));

输出的结果:

      ["107", "114", "128", "133", "146", "155"]


9.splice()删除元素,并向数组添加新元素

/从数组中添加/删除项目,然后返回被删除的项目。

注意:该方法会改变原始数组。

语法格式:arrayObject.splice(index,howmany,item1,.....,itemX)

    参数:index — 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

       howmany — 必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, ..., itemX — 可选。向数组添加的新项目。

例子,向数组添加一个元素:

var  arr = new Array("133","114","155","146","107","128");

  console.log(arr.splice(2, 0, "200"),arr);

输出结果:

[] ["133", "114", "200", "155", "146", "107", "128"]


例子, 替换掉一个元素

var  arr = new Array("133","114","155","146","107","128");

  console.log(arr.splice(2, 1, "200"),arr);

输出结果:

  ["155”]  ["133", "114", "200", "155", "146", "107", "128"]

 

10.toSource()返回该对象的源代码

IESafariChromeOpera 等浏览器均不支持该方法,只有FireFox支持

function employee(name,job,born)

{

this.name=name;

this.job=job;

this.born=born;

}


var bill=new employee("Bill Gates","Engineer",1985);


document.write(bill.toSource());

输出结果:

({name:"Bill Gates", job:"Engineer", born:1985}) 


11.toString()把数组转化为字符串,并返回结果

       var  arr = new Array("133","114","155","146","107","128");

 

  console.log(arr.toString());

输出结果:

133,114,155,146,107,128 


12.toLocalString()把数组转化为本地数组,并返回结果

首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

document.write(arr.toLocaleString())

输出结果:

George, John, Thomas

13.unshift()向数组的开头添加一个或更多元素,并返回新的长度

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

   语法格式:arrayObject.unshift(newelement1,newelement2,....,newelementX)

newelement1 — 必需。向数组添加的第一个元素。

newelement2 — 可选。向数组添加的第二个元素

newelementX — 可选。可添加若干个元素。

var  arr = new Array("133","114","155","146","107","128");

 console.log(arr.unshift("0","111”),arr);

输出结果:8 ["0", "111", "133", "114", "155", "146", "107", "128"]

    


14.valueOf()返回数组对象的原始值

valueOf() 方法返回 Array 对象的原始值。

该原始值由 Array 对象派生的所有对象继承。

valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值