关于数组(array)

好的,数组大爷,我错了!!!

怎么肥事呢?原因是我今晚在去重的时候犯了一个错误,用splice()时候用成这个样子了


代码

具体代码我记不住了,犯了这样一个错误。所以总结一下:关于array那些事;



好的,我们开始说事;先来介绍一下array;

array是什么呢?是数组,ok,也是一个对象,不然array怎么可能会有方法呢!array是怎么出来的,换句话说,array的出现解决了什么需求?是这样的,函数在return时候,只能return一个值,而,有些时候我们需要return很多东西,比如string,比如集合什么的。再者,比如,我们下存储一些比较复杂的变量的时候,可能会var很多个变量,这导致,代码长度越来越长,让人难以维护。所以一个比较牛的东西就出现了,那就是array,一个让人脑阔疼的东西。

在w3c上面是这么定义array的:Array 对象用于在单个的变量中存储多个值。ok!

来我们看看怎么创建array对象,也就是数组,我和你们讲array不是一种数据类型,它是对象,他的数据类型也是对象。

no.1 


代码


结果
方法

上面这张图,证明array是对象;

no.2


代码


结果

no.3 

代码


结果

no.4


代码


结果

no.5


代码


结果

ok,可见这种方式和下面一种方式并没有什么差别!

no.6


代码


结果

好的,这就是数组创建的方式!!!!!



关于数组对象的方法:

Array.from()

Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例。


代码


结果

简单的说就是把可以转化为数组的东西,转化为数组。

Array.isArray()

Array.isArray() 用于确定传递的值是否是一个 Array


代码


结果

Array.observe() ------------------------ 已经废弃

Array.observe() 方法用于异步监视数组发生的变化,类似于针对对象的 Object.observe()。当数组的值发生变化时,它按发生顺序提供了一个变化流。与 Object.observe() 类似,它由如下可接受的变化类型列表["add"、"update"、"delete"、"splice"]触发

Array.of()

Array.of()方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。

简单来说,就是把放到of里的参数转化为一个数组,区别与 Array();注意一个是把7当成长度,一个是把7当成元素。


代码


结果

Array.prototype.concat()

concat()方法用于合并两个或多个数组。concat不会更改现有数组,而是返回一个新数组。


代码


结果

Array.prototype.copyWithin()

copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,而不修改其大小。

arr.copyWithin(target[,start[,end]]) 

target---复制序列到该位置。如果是负数,target将从末尾开始计算。

            注意:如果target大于等于arr.length,将会不发生拷贝。如果target在start之后,复制的序列将被修改以符合arr.length。

start---开始复制元素的起始位置。如果是负数,start将从末尾开始计算。

            注意:如果start被忽略,copyWithin将会从0开始复制。

end---开始复制元素的结束位置。copyWithin将会拷贝到该位置,但不包括end这个位置的元素。如果是负数,end将从末尾开始计算。

            注意:如果end 被忽略,copyWithin 将会复制到arr.length。


代码


结果

Array.prototype.every()

every()方法测试数组的所有元素是否都通过了指定函数的测试。任何一个不通过都返回false


代码


结果

Array.prototype.fill()

用某个元素,填充数组;

fill(curr ,star,end)

curr---某个元素

star---开始位置

end---结束位置


代码


结果

Array.prototype.filter()

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。换句话说就是这个函数返回一个数组,一个通过你提供的函数的测试的元素。


代码


结果

Array.prototype.find()

find()方法返回数组中满足提供的测试函数的第一个元素的值。否则返回undefined。


代码


结果

Array.prototype.findIndex()

findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。



代码
结果

Array.prototype.forEach()

forEach()方法对数组的每个元素执行一次提供的函数,也就是遍历函数,这个和for 循环 或者for in 循环没有差别,没有返回值,但是可以在forEach中做事;


代码


结果

Array.prototype.indexOf()

indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。


代码


结果

Array.prototype.join()

将数组的元素以某个符号连接起来成为一个字符串,返回值是字符串;

代码


结果

Array.prototype.lastIndexOf()

从数组最后一个元素开始寻找给定元素第一次出现的地方,并返回给定元素的下标


代码


结果

Array.prototype.map()

遍历数组,返回数组(数组长度和源数组一样),其返回的数组是传入函数处理的结果


代码


结果

Array.prototype.pop()

pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。


代码


结果

Array.prototype.push()

往数组后面添加元素


代码


结果

Array.prototype.reverse()

逆序,反转


代码


结果

Array.prototype.shift()

方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。


代码


结果

Array.prototype.slice()

截取元素,返回截取元素的数组,但是不改变原数组


代码


结果

Array.prototype.some()

some()方法测试数组中的某些元素是否通过由提供的函数实现的测试。通过返回true,否则返回false;


代码


结果

Array.prototype.sort()

排序函数

升序传入函数function(a,b){return a-b};

降序传入函数function(a,b){return b-a};

其中a,b相当于数组的相邻两个元素;


代码


结果

Array.prototype.splice()

splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容

array.splice(start[,deleteCount[,item1[,item2[,...]]]]);

start​

指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数);如果负数的绝对值大于数组的长度,则表示开始位置为第0位。

deleteCount可选

整数,表示要移除的数组元素的个数。如果 deleteCount 是 0,则不移除元素。这种情况下,至少应添加一个新元素。如果 deleteCount 大于start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)。

如果deleteCount被省略,则其相当于(arr.length - start)。

item1, item2,...可选

要添加进数组的元素,从start 位置开始。如果不指定,则splice() 将只删除数组元素。

splice方法使用deleteCount参数来控制是删除还是添加:

start参数是必须的,表示开始的位置(从0计数),如:start=0从第一个开始;start>= array.length-1表示从最后一个开始。

①、从start位置开始删除[start,end]的元素。

array.splice(start)

②、从start位置开始删除[start,Count]的元素。

array.splice(start, deleteCount)

③、从start位置开始添加item1, item2, ...元素。

array.splice(start,0, item1, item2, ...)

返回值 由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。


代码
结果

Array.prototype.toLocaleString()

转换为本地字符


代码
结果

Array.prototype.toString()

转换为字符串


代码
结果

Array.prototype.unshift()

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


代码


结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容