数组方法

Es6 +
includes
检测数组中是否存在该元素,返回Boolean值

const list = [1, 2, 3];

const res = list.includes("0")
const res1 = list.includes(1)
console.log(res, res1) // false true

find
查找数组的元素,满足条件的返回单个值,按照就近原则返回

const list = [1, 2, 3];

const res = list.find((item) => item > 1)
console.log(res) // 2, 按照就近原则返回

findIndex
查找数组中元素,满足条件的返回数组下标

const list = [1, 2, 3];

const res = list.findIndex((item) => item > 1)
console.log(res) // 1, 按照就近原则返回下标

flat
用于填充数组对象

const list = [1, 2, 3];

const res = list.fill(1)
console.log(res) // [1, 1, 1]

Array.isArray
检测对象是不是一个数组

const list = [1, 2, 3];

const res =  Array.isArray(list)
console.log(res) // true

Array.from
将伪数组转换为真数组

const res = Array.from(document.getElementsByTagName("div"))
console.log(res) // 转换为真数组就可以调用数组原型的方法

Array.of
用于生成一个数组对象,主要是用来弥补Array()的不足

const res = Array.of(1, 2, 3)
console.log(res) // [1, 2, 3]

Es5系列
indexOf
用于查找数组中是否存在某个值,如果存在则返回某个值的下标,否则返回-1

const list = [1, 2, 3];
console.log(list.indexOf(2)) // 1
console.log(list.indexOf("0")) // -1

map
map是一个数组函数方法,接收三个参数,value,index,self,返回值是处理完的结果。

const list = [1, 2, 3];
const res = list.map((value, key, self) => {
   console.log(value) // 1 2 3
   console.log(key) // 0 1 2
   console.log(self) // [1, 2, 3]
   return value * 2
})
console.log(res)

forEach
用于遍历一个数组,接收三个参数,value,index,self,返回值为undefined

const list = [1, 2, 3];
const res = list.forEach((value, key, self) => {
    console.log(value) // 1 2 3
    console.log(key) // 0 1 2
    console.log(self) // [1, 2, 3]
    return 123
})
console.log(res) // undefined

splice
用于数组删除或替换内容,接收三个参数
第一个参数是,删除或添加的位置
第二个参数是,要删除的几位,如果为0则不删除
第三个参数是,向数组添加内容

const list = [1, 2, 3];

const.splice(0, 1) // 把第0个位置,给删除一位
console.log(list) // [2, 3]

list.splice(0, 1, "4") // 把第0个位置,给删除一位,添加上一个字符串
console.log(list) // ["4", 2, 3]

list.splice(0, 2, "4") // 把第0个位置,给删除2位,添加上一个字符串
console.log(list) // ["4", 3]

#删除[数组]中某个指定元素

let index = this.array.indexOf(name)
if (index > -1) {
  this.array.splice(index, 1)
}

#删除数组中的某个对象

this.tsData.map((item,index)=>{
  if(item.value=="aa"){
    this.tsData.splice(index,1)
  }
})

slice
用于截取数组值,接收两个参数,第一个参数是要获取哪个值的下标,第二个参数是截取到哪个下标的前一位

const list = [1, 2, 3];

const res = list.slice(1, 3) // 从第一位下标开始截取,到第三位下标的前一位,所以截取出来就是 [2, 3]
console.log(res) // [2, 3]

filter
用于过滤数组内的符合条件的值,返回值为满足条件的数组对象

const list = [1, 2, 3];

const res = list.filter(item => item > 1);
console.log(res) // [2, 3]

every
用于检测数组所有元素是否都符合指定条件,返回值为Boolean , 该方法是数组中必须全部值元素满足条件返回true,否则false

const list = [1, 2, 3];

const res = list.every(item => item > 0)
console.log(res) // true

const res1 = list.every(item => item > 1)
console.log(res1) // false

some
用于检测数组中的元素是否满足指定条件,返回值为Boolean , 该方法是只要数组中有一项满足条件就返回true,否则false

const list = [1, 2, 3];

const res = list.some(item => item > 0)
console.log(res) // true

reduce
该方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。该方法回调函数接收四个参数
第一个参数:初始值, 或者计算结束后的返回值
第二个参数:当前元素
第二个参数:当前元素的索引
第四个参数:当前元素所属的数组对象,本身
我们一般只用前两个就行,reduce第一个参数回调函数,第二个参数是初始值

const list = [1, 2, 3];

const res = list.reduce(( prev, cur ) => prev += cur, 0)
console.log(res) // 6

reverse
用于数组反转

const list = [1, 2, 3];

const res = list.reverse();
console.log(res) // [3, 2, 1]

join
用于数据以什么形式拼接

const list = [1, 2, 3];

const res = list.join("-");
console.log(res) // 1-2-3

const sum = eval(list.join("+"))
console.log(sum) // 6

sort
用于将数组排序,排序规则看返回值
返回值为正数,后面的数在前面
返回值为负数,前面的数不变,还在前面
返回值为0,都不动

const list = [1, 2, 3];

const sort = list.sort((a, b) => b - a)
console.log(sort) // [3, 2, 1]

concat
用于合并数组原始

const list = [1, 2, 3];

const res = list.concat([4, 5, 6])
console.log(res) // [1, 2, 3, 4, 5, 6]

//es6
const list = [1, 2, 3];
const list1 = [4, 5, 6];
console.log(...list, ...list1) // [1, 2, 3, 4, 5, 6]

push
向数组后面添加元素,返回值为数组的length

const list = [1, 2, 3];

const res = list.push(1)
console.log(res) // 4

pop
用于删除数组尾部的元素,返回值为删除的元素

const list = [1, 2, 3];

const res = list.pop()
console.log(res) // 3

shift
删除数组的头部,返回值为删除的元素

const list = [1, 2, 3];

const res = list.shift()
console.log(res) // 1

unshift
向数组的头部添加元素,返回值为数组的length

const list = [1, 2, 3];

const res = list.unshift(1)
console.log(res) // 4

toString
用于将数组内容转换为字符串

const list = [1, 2, 3];

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

推荐阅读更多精彩内容