工作中发现掌握好数组和对象中所有方法,并灵活运用,绝对能大大提高你的编程效率,那还想什么呢,总结起来~

目录

push()后增方法

pop()后删方法

shift()前删方法

unshift()前增方法

concat()拼接方法

reverse()反转方法

sort()排序方法

join()方法

slice()剪切方法

splice()修改删除方法

forEach()方法

indexOf()方法和lastIndexOf()方法

filter()过滤方法

every()方法

some()方法

Array.isArray()方法

includes()方法

find()方法

findIndex()方法

fill()方法

map()方法

push()后增方法

在数组后面添加元素(一个或多个),返回值是新数组的长度;

 const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']console.log(array1.push('都是水果呢')) // 6console.log(array1) //  ['苹果', '香蕉', '桃子', '草莓', '火龙果', '都是水果呢']const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']console.log(array1.push('都是水果呢', '最爱的')) // 7console.log(array1) // ['苹果', '香蕉', '桃子', '草莓', '火龙果', '都是水果呢', '最爱的']

pop()后删方法

删除数组最后一个元素,并且将删除的元素返回;

const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.pop()) // 火龙果
console.log(array1) // ['苹果', '香蕉', '桃子', '草莓']

shift()前删方法

删除数组中第一个元素,返回值为删除的该元素;

const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.shift()) // 苹果
console.log(array1) // ['香蕉', '桃子', '草莓', '火龙果']

unshift()前增方法

在数组开头添加一个或多个元素,返回值为新数组的长度;

const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.unshift('橙子', '丑橘')) // 7
console.log(array1) // ['橙子', '丑橘', '苹果', '香蕉', '桃子', '草莓', '火龙果']

concat()拼接方法

该方法可连接两个或多个数组,并将新的数组返回,该方法不会对原数组产生影响;

 const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']const array2 = ['橙子', '丑橘']console.log(array1.concat(array2)) // ['苹果', '香蕉', '桃子', '草莓', '火龙果', '橙子', '丑橘']console.log(array1) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']const array2 = ['橙子', '丑橘']const array3 = ['圣女果', '猕猴桃']console.log(array1.concat(array2, array3)) // ['苹果', '香蕉', '桃子', '草莓', '火龙果', '橙子', '丑橘', '圣女果', '猕猴桃']console.log(array1) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']

reverse()反转方法

该方法用来反转数组,会直接修改原数组

const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.reverse()) // ['火龙果', '草莓', '桃子', '香蕉', '苹果']
console.log(array1) // ['火龙果', '草莓', '桃子', '香蕉', '苹果'] 原数组也进行了反转

sort()排序方法

对数组中的元素进行排序,默认按照Unicode编码进行排序,该方法也会影响原数组

const array2 = [2, 9, 40, 0]
console.log(array2.sort()) // [0, 2, 40, 9] // 按第一位排序
console.log(array2) // [0, 2, 40, 9]

join()方法

将数组转换成一个字符串,该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回,在join()中可指定一个字符串作为参数,该参数将会成为数组中元素的连接符,若不指定连接符,则默认使用逗号,作为连接符

const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.join()) // 苹果,香蕉,桃子,草莓,火龙果
console.log(array1) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']
const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.join('-')) // 苹果-香蕉-桃子-草莓-火龙果
console.log(array1) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']

slice()剪切方法

取数组的指定元素,不会影响原数组,将取出来的元素封装到一个新的数组中

该方法有两个参数,第一个参数是截取开始位置的索引(包含开始位置的索引),第二个参数是截取结束位置的索引(不包含结束的索引),若第二个参数省略不写,则表明会截取从开始索引往后的所有元素;

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

 const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']console.log(array1.slice(0, 2)) // ['苹果', '香蕉']console.log(array1) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']
const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.slice(3)) // ['草莓', '火龙果']
console.log(array1) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']
 const array3 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']console.log(array3.slice(-2)) // ['草莓', '火龙果']console.log(array3) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']
 const array3 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']console.log(array3.slice(-4, -1)) // ['香蕉', '桃子', '草莓']console.log(array3) // ['苹果', '香蕉', '桃子', '草莓', '火龙果']

splice()修改删除方法

用于删除数组中的指定元素,该方法会影响原数组,返回值为删除的元素;

该方法有三个参数:

第一个参数,表示开始位置的索引(包括开始索引);

第二个参数,表示要删除的元素数量

第三个参数及以后参数,可传递一些新元素,这些元素将会自动插入到开始位置索引前面;

const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.splice(1, 2)) // ['香蕉', '桃子']
console.log(array1) // ['苹果', '草莓', '火龙果']
const array1 = ['苹果', '香蕉', '桃子', '草莓', '火龙果']
console.log(array1.splice(1, 2, '哈密瓜', '水蜜桃', '葡萄')) // ['香蕉', '桃子']
console.log(array1) // ['苹果', '哈密瓜', '水蜜桃', '葡萄', '草莓', '火龙果']

forEach()方法

遍历数组的方法,参数为三元函数,该函数的参数:

第一个参数:正在遍历的元素;

第二个参数:当前遍历元素的索引;

第三个参数:正在遍历的数组;

不能ruturn

array1.forEach(function(ele, index, arr) {console.log(ele); // 苹果console.log(index); // 0console.log(arr); // ['苹果', '哈密瓜', '水蜜桃', '葡萄', '草莓', '火龙果']
})array1.forEach((ele, index, arr) => {console.log(ele); // 苹果console.log(index); // 0console.log(arr); // ['苹果', '哈密瓜', '水蜜桃', '葡萄', '草莓', '火龙果']
})

indexOf()方法和lastIndexOf()方法

都是用于查找某元素在数组中的位置,若存在,则返回第一个位置的下标,否则返回-1;不会改变原数组;

其中,indexOf('查找的元素', startIndex)表示从startIndex开始,从头到尾查询;包含开始索引

lastIndexOf参数一样,区别在于从尾到头查询;

const array1 = ['苹果', '葡萄', '桃子', '苹果', '火龙果', '苹果']
console.log(array1.indexOf('苹果', 0)) // 0
console.log(array1.lastIndexOf('苹果', 0)) // 0
console.log(array1.indexOf('苹果', 1)) // 3
console.log(array1.indexOf('猕猴桃', 1)) // -1

filter()过滤方法

filter()方法返回数组中满足条件的元素组成的新数组,不改变原数组;

该方法的参数也是个三元函数,

第一个参数:正在遍历的元素;

第二个参数:当前遍历元素的索引;

第三个参数:正在遍历的数组;

const array2 = [1,2,3,4,5]
console.log(array2.filter(item => item >= 4 )); // [4, 5] const array2 = [1,2,3,4,5]const array3 = array2.filter(item => { return item >= 4 }); // [4, 5]console.log(array2); // [1,2,3,4,5]console.log(array3);  // [4, 5]

every()方法

用于检测数组中的所有元素是否都符合指定条件,若每一项都返回true,则返回true,反之若检测到有一项不满足条件,则返回false,并且剩下的元素不会再进行检测;

该方法不会对空数组进行检测;并且不会改变原始数组;

参数也是一个三元函数(与上相同):

 const array2 = [1,2,3,4,5]console.log(array2.every((item, index, arr) => item >= 5 )); // falseconsole.log(array2.every(item => item >= 0)); // trueconsole.log(array2.every(item => { return item >= 0 })); // true

some()方法

用于检测数组中的元素是否满足指定条件,若有一个元素满足条件,则返回true,并且不再检测剩余的元素;若没有满足条件的元素,则返回false;

该方法不会对空数组进行检测;并且不会改变原始数组;

参数也是一个三元函数(与上相同):

const array2 = [1,2,3,4,5]
console.log(array2.some((item, index, arr) => item >= 5 )); // true
console.log(array2.some((item, index, arr) => {return item >= 5
})); // true

Array.isArray()方法

判断是否是数组,参数是要判断的数组

const array2 = [1,2,3,4,5]
console.log(Array.isArray(array2)); // true

includes()方法

用于判断一个数组是否包含一个指定的值,如果包含,则返回true,反之返回false;

参数有两个:

第一个元素: 要查找的元素值;

第二个元素:开始查找的索引值,默认是0,即从头开始查找;

 const array1 = ['苹果', '葡萄', '苹果', '桃子', '火龙果']console.log(array1.includes('苹果')); // trueconsole.log(array1.includes('苹果', 3)); // falseconsole.log(array1.includes('葡萄', -3)); // false

对于复杂数组,可用some()方法替代includes()方法;

find()方法

返回数组中满足条件的第一个元素元素值;当有一个元素满足条件时,之后的值不会再被遍历到;若没有符合条件的元素,则返回undefined

该方法不会改变原始数组;

参数为三元函数(与上相同);

  const array1 = ['苹果', '葡萄', '苹果', '桃子', '火龙果']console.log(array1.find(item => item === '葡萄')); // 葡萄console.log(array1.find(item => item === '西瓜')); // undefinedconsole.log(array1.find(item => {return item === '葡萄'}));  // 葡萄

该方法和filter()方法的区别在于: filter返回值是由所有满足条件的元素组成的数组;

findIndex()方法

findIndex()的作用同IndexOf(),返回第一个满足条件的元素位置;当有一个满足条件时,不再执行下一个;若都不满足,则返回-1;

参数为一个三元函数(与上相同):

const array1 = ['苹果', '葡萄', '苹果', '桃子', '火龙果']
console.log(array1.findIndex(item => item === '葡萄')); // 1
console.log(array1.findIndex(item => item === '西瓜')); // -1
console.log(array1.findIndex(item => { return item === '葡萄'
}));

fill()方法

该方法用于将一个固定值替换某个数组的元素;

参数有三个:

第一个参数:要填充的值;

第二个参数:可选,表示开始填充的位置;

第三个参数:可选,表示停止填充的位置,默认为array.length

 const array1 = ['苹果', '葡萄', '苹果', '桃子', '火龙果']console.log(array1.fill('西瓜', 1, 3)); // ['苹果', '西瓜', '西瓜', '桃子', '火龙果']

map()方法

该方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

map()方法按照原始数组元素顺序依次处理元素

参数为三元函数(与上相同);

const array2 = [1, 2, 3, 4, 5]
const array3 = array2.map(function(item, index, arr) { item = item + 1; return item
})
console.log(array3); // [2, 3, 4, 5, 6]
console.log(array2); // [1, 2, 3, 4, 5]const array4 = array2.map(item => item = item + 2);
console.log(array4); // [3, 4, 5, 6, 7]

总结

会改变原数组的方法 (push、pop、shift、unshift、reverse、sort、splice)

不会改变原数组的方法 (indexOf 、lastIndexOf 、every 、some 、filter 、map  、concat 、slice 

欢迎补充~


补充:

copyWithin()方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中,数组长度不变,返回改变后的数组

array.copyWithin(target, start, end)
// target是复制到指定目标索引位置,必填
// start 元素复制的起始位置。默认为 0 ,若为负值,则表示从后面开始复制
// end 停止复制的索引位置。默认为array.length, 不包含end的索引,若为负值,则表示从后面开始复制
// 停止复制索引位置后面的元素保持不变
const arry1 = [1,2,3,4,5]
console.log(arry1.copyWithin(0,2,4)); // [3,4,3,4,5]
console.log(arry1.copyWithin(0,1,4)); // [4,3,4,4,5]

JavaScript中常用数组方法总结相关推荐

  1. javascript中常用数组方法详细讲解

    javascript中数组常用方法总结 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔 ...

  2. javascript字典中添加数组_如何在JavaScript中使用数组方法:Mutator方法

    JavaScript中的数组由元素列表组成.JavaScript有许多有用的内置方法来处理数组.修改原始数组的方法称为mutator方法,返回新值或表示的方法称为accessor方法.在本教程中,我们 ...

  3. JavaScript中的数组方法和循环

    1.基本概念 JavaScript 数组用于在单一变量中存储多个值.是一个具有相同数据类型的一个或多个值的集合 2.创建数组的三种方法 (1)使用JavaScript关键词 new 一个Array对象 ...

  4. 15+ Javascript 中的数组方法

    什么是 JS 中的数组? Array 对象与其他编程语言中的数组一样,可以将多个项目的集合存储在单个变量名下,并具有用于执行常见数组操作的成员. 声明数组 我们可以用两种不同的方式声明数组. 使用新数 ...

  5. 分享20个Javascript中的数组方法,收藏

    什么是数组?与其他编程语言中的数组一样,Array对象允许在一个变量名称下存储多个项的集合,并且具有用于执行常见数组操作的成员. 声明数组 我们可以用两种不同的方式声明数组. 使用新阵列 使用new ...

  6. javascript中常用数组函数

    1.split方法--通过分隔符,将字符串分割,导出字符数组 常用于:分割IP地址,分割文件路径(上传文件时)等等 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  7. Javascript中的数组方法总结

    1.concat():将两个或多个数组合并成一个数组 arrayObject.concat(arrayX,arrayX,......,arrayX),返回一个新的数据,arrayX可以是数值也可以是数 ...

  8. JavaScript 常用数组方法及使用技巧「数组的力量隐藏在数组方法中,必收藏」

    JavaScript 数组的力量隐藏在数组方法中. 没错!如果你只知道用数组,但是不知道数组的这些方法怎么用,那么你就不是真正的懂他. 正餐开始,来看看 JavaScript 中有哪些常用的数组方法! ...

  9. 5种JavaScript中常用的排序方法

    5种JavaScript中常用的排序方法 01.冒泡排序 通过相邻数据元素的交换,逐步将待排序序列变为有序序列,如果前面的数据大于后面的数据,就将两值进行交换,将数据进行从小到大的排序,这样对数组的第 ...

最新文章

  1. zabbix监控windows(03,08)
  2. “不会Linux,怎么干程序员?”骨灰级工程师:干啥都不行!
  3. @override怎么加上去_不知道怎么学?java后端5年经验和技术总结(附思维导图)
  4. excel调用python编程-使用python集合进行EXCEL数据分析
  5. AIRec个性化推荐召回模型调参实战
  6. 在mvc4里怎样引用:System.Web.Optimization和entityframework
  7. windows下node安装
  8. Qt之QThread用法
  9. 揪出数据库中看不见的字符
  10. VoLTE 有什么好处
  11. 程序员需要记住的3个优秀网站
  12. ASP.NET Razor - html中使用if else
  13. php doss_ddos PHP版
  14. 上海财经应用统计考python_2021年上海财经大学应用统计硕士考研必看成功上岸前辈复习经验分享...
  15. INTELLIJ IDEA 2017 破解教程(2018也可以!)
  16. PCB LAYOUT特殊走线总结
  17. 央行:个人征信基本实现金融信用信息广覆盖
  18. java 实体类校验_实体类的验证
  19. 织梦DEDECMS QQ一键登录插件返回空白解决方法
  20. 让你百分百玩转抖音!

热门文章

  1. 巴塞罗那,高迪的城市
  2. 装配式施工在建筑装修中的应用研究
  3. Map的某种创建方式
  4. android 听筒模式外放模式的切换,YY项目之Android 听筒 扬声器 切换
  5. 【终结扩散模型】Consistency Models.OpenAI开源新模型代码,一步成图,1秒18张
  6. React报错:Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.
  7. Linux内核实现名称空间的创建
  8. 速记混淆矩阵中的FP、FN、FP、TN
  9. 如何用Tableau可视化?
  10. 微信开发者工具预览二维码无法显示