let arr1 = [ {name: 1} ]
let arr2 = [ {age: 23} ]
let ages = [11, 22, 23]
let newArr = arr1.concat(arr2)

  1. concat() 用于连接两个或多个数组, 该方法不会改变现有的数组, 而仅仅会返回被连接数组的一个副本.但是修改newArr[0]的内容时,会改变arr1中对应的值(对象数组时,普通数组不会改变)

  2. every() 用于检测数组所有的元素是否都符合指定条件, 如果检测到有一个元素不满足, 则整个表达式返回 false, 且剩余的元素不会再进行检测, 只有所有的元素都满足,才会 返回 true
     let result = arr1.every((currentValue, index, arr1) => { return currentValue.name < arr2[0].age }, arr2) //该方法可以接受两个参数 

  3. filter() 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

     let resultArr = arr1.filter((currentValue, index, arr1) => { return currentValue.name < arr2[0].age }, arr2) // 该方法可以接受两个参数

  4. find() 返回符合要求的第一个元素, 找到符合的元素后,就直接返回,后面的不再继续执行,没有找到时,返回 undefined

     let matchValue= arr1.find((currentValue, index, arr1) => { return currentValue.name < arr2[0].age }, arr2) //该方法可以接受两个参数 
  5. findIndex() 返回符合要求的第一个元素的位置,没有找到时返回 -1, 其余与 find() 类似
  6. Array.from() 用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组
     let newArray = Array.from([1, 2, 3], (x) => x * 10); newArray = [10, 20, 30] // 其中函数是数组中每个元素需要调用的 let newArray = Array.from(new set([1, 2, 2, 1])) // 此方法可以去重 
  7. includes() 用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false, 对象数组不适用 [NaN].includes(NaN) // true [NaN].indexOf(NaN) // -1
  8. Array.isArray(obj) 用来判断一个对象是不是数组
  9. map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
     let newArray = arr1.map( (currentValue, index, arr) => { return arr2[0].age * currentValue.name }, arr2 ) //该方法可以接受两个参数  
  10. pop() 删除数组的最后一个元素并返回删除的元素, 此方法改变数组的长度
     let deleteItem = arr1.pop() 
  11. reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

    

let total = ages.reduce((total, currentValue, index, arr) => {
// total 初始值, 或者计算结束后的返回值。
  return total + currentValue // 起始时,total为第一个元素的值(没有传计算的初始值时)
}, 100) // 100为计算的初始值

  12. reduceRight() 与reduce()一样, 只是reduceRight()是从右向左递减

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

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


  15. slice()方法可从已有的数组中返回选定的元素。
     let slicedArray = ages.slice(start, end) // start规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。end规定从何处结束选取。 
  16. some() 方法用于检测数组中的元素是否满足指定条件(函数提供),如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。
     let matchResult= arr1.some((currentValue, index, arr1) => { return currentValue.name < arr2[0].age }, arr2) 该方法可以接受两个参数 
  17.sort() 方法用于对数组的元素进行排序。默认排序顺序为按字母升序。
    

let points = [40,100,1,5,25,10]
points.sort(function(a,b){return b-a}); // 数字降序
// 对象数组排序
orderByObjAttr (key) {
 return function (val1, val2) {
   return val1[key] - val2[key]
 }
}
arr1.sort(orderByObjAttr('name')) // arr1数组按照name字段升序排列

  18. splice()方法用于添加或删除数组中的元素。如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。
     let deleteArray = ages.splice(2, 1, 12, 12, 23) // 从ages数组的下标为2开始删除一个元素,并添加上12, 12, 23三个元素, deleteArray = [1] 
  19. toString()方法可以将数组转成字符串,并返回结果
     let arrayString = ages.toString() 
  20. unshift()方法可向数组的开头添加一个或更多元素,并返回新的长度。
  21. flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。flat(2)
     let arrTwo = [[1, 2, 3], [2, 3, 4]] let arrTwo_new = arrTwo.flat() // [1, 2, 3, 2, 3, 4] 
  22. flatMap()方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。
     [2, 3, 4].flatMap((x) => [x, x * 2]) // [2, 4, 3, 6, 4, 8] 
  23. copyWithin()在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。
     

Array.prototype.copyWithin(target, start = 0, end = this.length)
// target(必需):从该位置开始替换数据。如果为负值,表示倒数。start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示从末尾开始计算。
[1, 2, 3, 4, 5].copyWithin(0, 3) // [4, 5, 3, 4, 5]

 

  24.Array.of()方法用于将一组值,转换为数组。
     Array.of(3, 11, 8) // [3,11,8] 
  25. 扩展运算符
    

let arr4 = [..arr1, ...arr2]
//与解构赋值结合使用
[a, ...rest] = arr1 // a = arr1[0], rest = arr1.slice(1)

  26.indexOf() 方法可返回数组中某个指定的元素位置。该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。如果在数组中没找到指定元素则返回 -1。
     let arr = [1, 2, 3, 4, 5]; arr.indexOf(1) // 0 
  27.lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。
     let arr = [1, 2, 3, 4, 5, 1];27.lastIndexOf(1) // 5 

js基础学习-数组的更多相关文章

  1. JS基础学习——对象

    JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...

  2. JS基础学习——闭包

    JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...

  3. JS基础学习——作用域

    JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...

  4. JS 基础学习随想

    2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...

  5. handlebars.js基础学习笔记

    最近在帮学校做个课程网站,就有人推荐用jquery+ajax+handlebars做网站前端,刚接触发现挺高大上的,于是就把一些基础学习笔记记录下来啦. 1.引用文件: jquery.js文件下载:h ...

  6. JS基础学习1

    1 JS 概述 一个完整的javascript实现是由以下3个不同部分组成的: (1)     核心(ECMAscript) (2)     文档对象模型(DOM)  Document object ...

  7. 两万字Vue.js基础学习笔记

    Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...

  8. JS基础学习(一)

    首先感谢 http://www.w3school.com.cn/js/index.asp 学js真的很方便,&下面的内容其实是我自己做的一个备忘 第一节 大致了解 一 js基本介绍 1.轻量级 ...

  9. JS基础学习篇(一)

    近来一直在学习js和jquery.刚刚进入前端工作还没有多久,虽然大学里学习的是编程自认为也学的还可以,但前端接触的不多,一直认为前端十分简单.其实不然,特别是工作的时候要自己设计一个完整的项目前端, ...

随机推荐

  1. Linux系统安装Python3环境

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 本文基于如下Linux系统版本: 1.默认情况下,Lin ...

  2. Linux screen命令详解

    开源Linux 长按二维码加关注~ 上一篇:局域网IP冲突罪魁祸首是谁? 很多时候,我们都需要执行一些需要很长时间的任务.如果这时候,你的网络连接突然断开了,那么你之前所做的所有工作可能都会丢失,所做 ...

  3. Jackson通用工具类

    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.11.1' compile group: ...

  4. vue中blob文件下载及其它下载方式

    一.Blob对象的了解 1:blob表示一个不可变.原始数据的类文件对象.Blob()构造函数返回一个新的blob对象:blob对象的内容由参数给出的值串联组成: 2:new Blob(array, ...

  5. 第30章 LeetCode 72 编辑距离

    每日一句 A flower cannot blossom without sunshine, and man cannot live without love. 花没有阳光就不能盛开,人没有爱就不能生 ...

  6. 国内GPU 厂商产品分布

    抽空理了理国内目前已知显卡厂商的各类产品(来源与各个公司产品网站),可能不全,后续会实时更新. 目前来看,显卡市场还是国外两巨头+intel 占据了绝大数的市场,intel 在igpu上深耕了很多年, ...

  7. 一分钟学会如何自定义小程序轮播图(蜜雪冰城Demo)

    最近开发小程序项目用到了轮播图,默认的有点单调,作为后端程序员,研究一番最终实现了.本文会从思路,代码详细介绍,相信读过此文后,不管以后在开发中碰到轮播图还是需要自定义修改其他的样式都可以按这个思路解 ...

  8. 面试突击55:delete、drop、truncate有什么区别?

    在 MySQL 中,删除的方法总共有 3 种:delete.truncate.drop,而三者的用法和使用场景又完全不同,接下来我们具体来看. 1.delete detele 可用于删除表的部分或所有 ...

  9. 2021.03.20【NOIP提高B组】模拟 总结

    区间 DP 专场:愉快爆炸 T1 题目大意 有 \(n\) 个有颜色的块,连续 \(k\) 个相同颜色的就可以消掉 现在可以在任意位置插入任意颜色的方块,问最少插入多少个可以全部抵消 题解 先把连续的 ...

  10. 使用PowerShell安装MySQL

    更新记录 2022年4月16日:本文迁移自Panda666原博客,原发布时间:2021年7月10日. 2022年4月16日:更新MySQL下载链接. 一.说明与准备工作 根据MySQL官网提供的安装M ...