# js数组分为属性和方法

## 属性

1.constructor返回对创建此对象的数组函数的引用。

这个其实在javascript中的对象都有

var a = []
console.log(a.constructor==Array) // true
function a(){
return []
}
console.log(a.constructor == Function) // true

说明 constructor属性是对象实际的引用

2.length 属性可设置或返回数组中元素的数目。

这个应该没有什么可以解释的就是数组的长度,是数值型

3.prototype 属性使您有能力向对象添加属性和方法。

属于对象的原型,一般像继承如果当前对象没有访问的方法则会像原型中查找,这里有__proto__指向原型中的原型,还有一个关键词就是检查是否是原型中的函数或属性hasOwnProperty,如果需要更深入的了解可以查找js prototype、__proto__、hasOwnProperty(Internet Explorer 8 和低于其的版本的宿主对象不支持该属性),所有的对象原型链最终都指向Object

## 方法

1.concat() 方法用于连接两个或多个数组。我直接写例子了:

var a = [1,2]
var b = [1,3,45]
var c = a.concat(b)
console.log(a) //[1, 2]
console.log(b) //[1, 3, 45]
console.log(c) //[1, 2, 1, 3, 45]
var d = a.concat(b,c)
console.log(d) //[1, 2, 1, 3, 45, 1, 2, 1, 3, 45]

数组本身不会添加被添加项,很多人都会在这里犯错误,其实是合并数组后有返回的值是合并后的值

2.join() 方法用于把数组中的所有元素放入一个字符串。

var a = ['1','2',3,4,6,5]
//不输入参数默认就是逗号
console.log(a.join()) //1,2,3,4,6,5
//不会改变a的值
console.log(a) //["1", "2", 3, 4, 6, 5]
//以下滑杠进行连接,返回一个字符串
console.log(a.join('_')) //1_2_3_4_6_5
//不会改变a的值
console.log(a) //["1", "2", 3, 4, 6, 5]
//多个参数无效
console.log(a.join('_','+')) //1_2_3_4_6_5
//不会改变a的值
console.log(a) //["1", "2", 3, 4, 6, 5]

3.pop() 方法用于删除并返回数组的最后一个元素。

var a = ['1','2',3,4,6,5]
console.log(a) //["1", "2", 3, 4, 6, 5]
var b = a.pop()
console.log(b) //
console.log(a) //["1", "2", 3, 4, 6]

如果网pop中输入参数,参数无效

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

var a = ['1','2',3,4,6,5]
var b = a.push(11)
console.log(a) //["1", "2", 3, 4, 6, 5, 11]
console.log(b) //
var c = a.push(22,33,44)
console.log(a) //["1", "2", 3, 4, 6, 5, 11, 22, 33, 44]
console.log(b) //
console.log(c) //

5.reverse() 方法用于颠倒数组中元素的顺序。

var a = ['1','2',3,4,6,5]
var b = a.reverse();
console.log(a);//[5, 6, 4, 3, "2", "1"]
console.log(b);//[5, 6, 4, 3, "2", "1"]

6.shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

var a = ['1','2',3,4,6,5]
var b = a.shift()
console.log(a) //["2", 3, 4, 6, 5]
console.log(b) //

7.slice() 方法可从已有的数组中返回选定的元素。

arrayObject.slice(start,end)

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

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

var a = ['1','2',3,4,6,5]
var b = a.slice(1,2)
console.log(a) //["1", "2", 3, 4, 6, 5]
console.log(b) // ["2"]
var c = a.slice(-3)
console.log(a) //["1", "2", 3, 4, 6, 5]
console.log(c) //[4, 6, 5]
var d = a.slice(2,-1)
console.log(a) //["1", "2", 3, 4, 6, 5]
console.log(d) //[3, 4, 6]

8.sort() 方法用于对数组的元素进行排序。

var a = ['1','2',3,4,6,5]
var b = a.sort();
console.log(a) //["1", "2", 3, 4, 5, 6]
console.log(b) //["1", "2", 3, 4, 5, 6]
var b = a.sort(function(a,b){
// 正序
// return a-b;
// 倒序
// return b-a;
// 随机
return (Math.random() > 0.5 ? 1 : -1);
})
//正序
console.log(a) //["1", "2", 3, 4, 5, 6]
console.log(b) //["1", "2", 3, 4, 5, 6]
// 倒序
console.log(a) //[6, 5, 4, 3, "2", "1"]
console.log(b) //[6, 5, 4, 3, "2", "1"]
// 随机
console.log(a) //[3, 4, "2", "1", 6, 5]
console.log(b) //[3, 4, "2", "1", 6, 5]

9.splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。(该方法会改变原始数组。)

arrayObject.splice(index,howmany,item1,.....,itemX)

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

howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。

var a = ['1','2',3,4,6,5]
var b = a.splice(2,0,'ss','dd')
console.log(a) //["1", "2", "ss", "dd", 3, 4, 6, 5]
console.log(b) //[]\
var c = a.splice(2,3,111,222,333)
console.log(a) //["1", "2", 111, 222, 333, 4, 6, 5]
console.log(c) //["ss", "dd", 3]

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

var a = ['1','2',3,4,6,5]
var b = a.unshift('111',222,333)
console.log(a) //["111", 222, 333, "1", "2", 3, 4, 6, 5]
console.log(b) //

unshift 头部添加元素

push 尾部添加元素

shift 头部删除元素

pop 尾部删除元素

这几个经常弄混

11.toSource() 方法表示对象的源代码。

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

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

12.toString() 方法可把数组转换为字符串,并返回结果。

arrayObject 的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同。

13.toLocaleString()把数组转换为本地字符串。

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

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

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

方法虽然都很简单,但是牢记有点难,总是搞混。。

javascript——Array的更多相关文章

  1. JavaScript Array 对象

    JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...

  2. JavaScript Array(数组)对象

    一,定义数组 数组对象用来在单独的变量名中存储一系列的值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, elem ...

  3. Javascript Array.prototype.some()

    当我们使用数组时,查找数组中包含某个特殊的项是非常常见的动作.下面例子是一个简单的实现: 01 planets = [ 02     "mercury", 03     " ...

  4. [Javascript ] Array methods in depth - sort

    Sort can automatically arrange items in an array. In this lesson we look at the basics including how ...

  5. Javascript Array 方法整理

    Javascript Array 方法整理 Javascript 数组相关方法 说明 大多数其它编程语言不允许改变数组大小,越界访问索引会报错,但是 javascript不会报错,不过不建议直接修改a ...

  6. javascript array操作

    首先来看一下怎么判断一个对象是不是数组: 1.Array.isArray(obj) 调用数组的isArray方法 2.obj instanceof Array 判断对象是否是Array的实例 3.Ob ...

  7. JavaScript : Array assignment creates reference not copy

    JavaScript : Array assignment creates reference not copy 29 May 2015 Consider we have an array var a ...

  8. JavaScript Array 数组方法汇总

    JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...

  9. JavaScript Array filter() 方法

    JavaScript Array filter() 方法 var ages = [32, 33, 16, 40]; function checkAdult(age) { return age > ...

  10. JavaScript Array 對象

    JavaScript array 對象 array對象,是用於在單個變量中存儲多個值的一種變量類型. 創建array對象的語法: new array(); new array(size); new a ...

随机推荐

  1. script标签里的defer属性

    入职新公司,看代码的时候注意到有的script标签中有一个defer属性,查了一下.在这里分享出来. 需要注意的有三点,其中前两点是在错误中分辨出来的: 错误来源:http://www.w3schoo ...

  2. Android深度探索--HAL与驱动开发----第三章读书笔记

    1. 什么是Git? Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开 ...

  3. 如何启动一个Java Web应用

    最近使用一个开源项目写程序,为了方便沟通加入了相关的讨论群,经常在群里看到有人问项目怎么启动不起来,在此提供一下解决思路1.查看自己下载的项目目录通过文件夹结构,你能够看出来你下载的是一个maven项 ...

  4. Golang游戏服务器

    我对和GOLANG写MMO服务器的一些遐想: 1.沙盒(隔离性) SKYNET:原生LUA STATE作为沙盒, 进行服务器间隔离安全性高: 服务可以很容易的配置到不同节点之上. GO:估计用RECO ...

  5. iOS--基础控件总结一

    UIWindow窗口 UIView视图 UIButten按钮 UILabel文本显示 UITextField输入框 UI TextView多行输入框 UISwitch开关 UISegmentedCon ...

  6. (转)C#实现MD5加密

    首先,先简单介绍一下MD5 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和r ...

  7. linux命令行将已有项目提交到github

    之前用git是在windows下用git的图形化界面进行操作的,这次有一个写了几天的小项目想提交到git上,linux命令行下面没有图形化的界面,所以全部需要git命令来操作. 实践之后,主要是下面几 ...

  8. C++预处理详解

    本文在参考ISO/IEC 14882:2003和cppreference.com的C++ Preprocessor的基础上,对C++预处理做一个全面的总结讲解.如果没有特殊说明,所列内容均依据C++9 ...

  9. <mate>

    1.<meta http-equiv="X-UA-Compatible" content="IE=edge"> 以最高级别的可用模式显示内容 有些因 ...

  10. html中的空格显示问题

    像这种,从后台查询出来的数据中间有好几个空格,但在页面上显示的时候就只剩一个空格了,这种显示肯定是不合适的,相关的html代码如下: <c:forEach items="${list} ...