js 数组是object对象吗

JavaScript021

js 数组是object对象吗,第1张

是object对象,有以下常用方法

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中他们其实好像没太大区别。希望能解决你的问题,如有疑问可追问!