Array常用方法

一、pop()、push()、shift()、unshift()、reverse()

pop():删除数组的最后一位,并且返回删除的数据
push():在数组的最后一位新增一个或多个数据,并且返回新数组的长度
shift():删除数组的第一位数据,并且返回新数组的长度
unshift():在数组的首位新增一个或多个数据,并且返回新数组的长度
reverse():将数组的数据进行反转,并且返回反转后的数组,会改变原数组

二、sort()、splice()

sort(callback):默认根据字符串的UniCode码排序,并且返回排过序的新数组
splice(start,num,d1,d2,...):向数组中添加、删除或替换元素,然后返回被删除/替换的元素

let arr = [12,4,31,8,5]
arr.sort()
    console.log(arr) // [12, 31, 4, 5, 8]
}
arr.sort((a,b)=>a - b);
console.log(arr) // [4, 5, 8, 12, 31]

三、copyWithin(),fill()

copyWithin(target,start,end):将指定位置的数组项复制到其他位置,会改变原数组
fill(val):使用给定值,填充一个数组,会改变原数组

四、slice()、join()、toString()、concat()

slice(start,end):截取指定位置的数组,并且返回截取的数组,不会改变原数组
join():将数组转为字符串并返回转化的字符串数据,不会改变原来的数组
toString():将数组转换成字符串,类似于没有参数的join()
concat(arr1,arr2,...):合并数组,返回合并数组之后的数组,不会改变原来的数组

五、valueOf()、IndexOf()、lastIndexOf()

valueOf():返回数组的原始值(一般情况下其实就是数组自身)
IndexOf(d,start):从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1
lastIndexOf(d,start):从右向左查询在数组中出现的位置,同上

六、数组遍历方法

forEach(callback(item,index,self)):用来遍历数组,没有返回值

let arr = ["a","b","c"];
let a = arr.forEach((item,index,self)=>{
    console.log(`${item}--${index}--${self}`) // a--0--a,b,c
})
console.log(a) // undefined

map(callback(item,index,self)):映射,返回callback的返回值组成的新数组

let arr = ["a","b","c"];
let a = arr.map((item,index,self)=>{
    console.log(`${item}--${index}--${self}`) // a--0--a,b,c
    return `${item}-${index}`
})
console.log(a) // ["a-0", "b-1", "c-2"]

filter(callback(item,index,self)):过滤,返回callback的返回值为true的item组成的新数组

let arr = [1,2,3,4,5];
let a = arr.filter((item,index,self)=>{
    console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5
    return item > 3
})
console.log(a) // [4, 5]

every(callback(item,index,self)):找假,callback的所有返回值为true,则返回true,否则false

let arr = [1,2,3,4,5];
let a = arr.every((item,index,self)=>{
    console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5 (一旦返回false则会终止遍历)
    return item < 3
})
console.log(a) // false

some(callback(item,index,self)):找真,callback的返回值存在true,则返回true,否则false

let arr = [1,2,3,4,5];
let a = arr.some((item,index,self)=>{
    console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5 (一旦返回true则会终止遍历)
    return item > 3
})
console.log(a) // true

reduce(callback(prev,item,index,self),val):迭代数组的所有项,返回的最终结果
reduceRight(callback(prev,item,index,self),val):从数组的最后一项开始,同上

let arr = [1,2,3,4,5];
let a = arr.reduce((pre,item,index,self)=>{
    console.log(`${pre}--${item}--${index}--${self}`)
    // 0--1--0--1,2,3,4,5
    // 1--2--1--1,2,3,4,5
    // 3--3--2--1,2,3,4,5
    // 6--4--3--1,2,3,4,5
    // 10--5--4--1,2,3,4,5
    return pre + item
},0) // 初始值不传少执行一次遍历
console.log(a) // 15

find(callback(prev,item,index,self)):查找,返回callback返回true的第一个item || undefined
findeIndex(callback(prev,item,index,self)):查找,返回callback返回true的第一个index

let arr = [1,2,3,4,5];
let a = arr.find((item,index,self)=>{
    console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5 (一旦返回true则会终止遍历)
    return item > 3
})
console.log(a) // 4

entries()、keys()、values():都返回一个遍历器对象,都可以用 for...of 循环进行遍历

let a = ['a', 'b', 'c']
for (let index of a.keys()) {
    console.log(index); // 0 、 1 、 2
}
for (let item of a.values()) {
    console.log(item); // a 、 b 、 c
}
for (let [index,item] of a.entries()) {
    console.log(index,item); // 0 a 、 1 b 、 2 c
}

七、Array.from()、Array.of()

Array.from(arr,callback):DOM 操作返回的 NodeList 、函数内部的 arguments 对象。Array.from都可以将它们转为真正的数组(只要一个对象有length,Array.from就能把它变成一个数组)callback类似于map的

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