1、数组的创建
var arrayObj = new Array() //创建一个数组
var arrayObj = new Array([size]) //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]) 创建一个数组并赋值
要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
2、数组的元素的访问
var testGetArrValue=arrayObj[1]//获取数组的元素值
arrayObj[1]= "这是新值"//给数组元素赋予新的值
3、数组元素的添加
arrayObj. push([item1 [item2 [. . . [itemN ]]]])// 将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]])// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]])//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
4、数组元素的删除
arrayObj.pop()//移除最后一个元素并返回该元素值
arrayObj.shift()//移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount)//删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素
5、数组的截取和合并
arrayObj.slice(start, [end])//以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]])//将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
6、数组的拷贝
arrayObj.slice(0)//返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat()//返回数组的拷贝数组,注意是一个新的数组,不是指向
7、数组元素的排序
arrayObj.reverse()//反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort()//对数组元素排序,返回数组地址
8、数组元素的字符串化
arrayObj.join(separator)//返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
唯一的区别是,数组的属性是0-n整数对象的属性可以是任意字符串
比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢?
数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。
当然,数组和对象的另一个区别是,数组的数据没有”名称”(name),对象的数据有”名称”(name)。
但是问题是,很多编程语言中,都有一种叫做”关联数组”(associative
array)的东西。这种数组中的数据是有名称的。
Java数组的应用教程:
你好,
我不太明确问题中所说的“对象数组”和“数组对象”具体指什么。其实在JS中对象和数组的界定并没有很清晰,我根据我自己对JS的了解,从字面上对这个问题进行一下解答。
首先,“对象数组”,在我的理解里可以理解成两种可能:其一,数组中的元素全部是对象,即由对象构成的数组;其二,JS中以键值对组合成的对象,由于可以使用类似数组取值的方式读取对象属性的值,因此对象也可看作一种特殊的数组。
其次,“数组对象”,即通常所说的数组,因为JS中一切借对象,数组也是对象。
接下来我举些例子来补充说明我的理解:
// 1. 【对象数组-1】全部由对象组成的数组var objArr = [
{a: 1},
{a: 2},
{a: 3, b: 4}
]
// 取值示例
console.log(objArr[2].b)
// or
console.log(objArr[2]['a'])
//=================================================
// 2. 【对象数组-2】Key: Value对象
var obj = {
key1: 1,
key2: 'string',
key3: function(){},
"special-key": 'Key中出现特殊字符'
}
// 同样可以用数组的方式取对象的值
console.log(obj.key2)
// or
console.log(obj['special-key'])
//=================================================
// 3. 【数组对象】普通数组
var arr = [1, 2, 'string', function(){ return 'value' }, {a: 1}]
// 取值
console.log(arr[2])
// or
console.log(arr[3]())
所以,本质上在JS中他们其实好像没太大区别。希望能解决你的问题,如有疑问可追问!