1.toString:返回以数组种的每个值得字符串形式拼接而成得一个以逗号分割得字符串

  toStringArr = [1, 2, 3, 4, 5, 6]
console.log(toStringArr.toString())
// -> 1,2,3,4,5,6

2.valueOf: 返回数组对象的原始值。返回的还是数组

  valueOfArr = [1, 2, 3, 4, 5, 6]
console.log(valueOfArr.valueOf())
// -> [1, 2, 3, 4, 5, 6]

3.join: 通过指定的分隔符进行分隔并返回一个字符串

  var arr = [1, 2, 3, 4, 5, 6]
var joinArr = arr.join('&')
console.log('join:' + joinArr)
// -> join:1&2&3&4&5&6

4.push: 向数组的末尾添加一个或更多元素,并返回新的长度

  var pushArr = [1, 2, 3, 4, 5, 6]
pushArr.push(7)
console.log(pushArr)
// -> [1, 2, 3, 4, 5, 6, 7]

5.pop: 删除数组的最后一个元素并返回删除的元素, 如果数组为空就返回undefined

  var popArr = [1, 2, 3, 4, 5, 6]
var popEle = popArr.pop()
console.log(popEle, popArr)
// -> 6, [1, 2, 3, 4, 5]

6.shift: 删除并返回数组的第一个元素, 如果数组为空,则shift() 方法不进行任何操作,返回undefined

  var shiftArr = [1, 2, 3, 4, 5, 6]
var shiftEle = shiftArr.shift()
console.log(shiftEle, shiftArr)
// -> 1, [2, 3, 4, 5, 6]

7.unshift: 向数组的开头添加一个或更多元素,并返回新的长度

  var unshiftArr = [1, 2, 3, 4, 5, 6]
unshiftArr.unshift(0)
console.log(unshiftArr)
// -> [0, 1, 2, 3, 4, 5, 6]

8.reverse: 反转数组的元素顺序

  var reverseArr = [1, 2, 3, 4, 5, 6]
reverseArr.reverse()
console.log(reverseArr)
// -> [6, 5, 4, 3, 2, 1]

9.sort: 对数组的元素进行排序

  // a.
var sortArr1 = [1, 3, 5, 2, 7, 6]
sortArr1.sort()
console.log(sortArr1)
// -> [1, 2, 3, 5, 6, 7]
// b. 因为sort排序是从左至右比较,只要其中一个比较出了结果,就直接返
var sortArr2 = [1, 3, 19, 5, 17, 6]
sortArr2.sort()
console.log(sortArr2)
// -> [1, 17, 19, 3, 5, 6]
// c: 封装sort
function sort(arr, type) {
type = type || 1
return arr.sort( (a, b) => {
switch(type) {
case 1: // 从小到大
return a - b
case 2: // 从大到小
return b - a
case 3: // 随机排序
return Math.random() - 0.5
default:
return arr
}
})
}
var sortArr3 = [1, 3, 19, 5, 17, 6]
sort(sortArr3)
console.log(sortArr3)

10.concat:连接两个或更多的数组,并返回结果

  var concat1 = [1, 2, 3],
concat2 = [4, 5, 6]
concatArr = concat1.concat(concat2)
console.log(concatArr)
// -> [1, 2, 3, 4, 5, 6]

11.slice(start, end): 选取数组的一部分,并返回一个新数组, start必须,end可选

  var sliceArr = [1, 2, 3, 4, 5, 6]
var sliceNewArr = sliceArr.slice(1, -1) // 截取第二个 到 倒数第二个
console.log(sliceNewArr)
// -> [2, 3, 4, 5]

12.splice(index, howmany, item1,.....,itemX): 从数组中添加或删除元素

  /*
index: 必需。规定从何处添加/删除元素。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字
howmany: 必需。规定应该删除多少元素。必须是数字,但可以是 "0"。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1,.....,itemX: 可选。要添加到数组的新元素
*/
var spliceArr1 = [1, 2, 3, 4, 5, 6]
spliceArr1.splice(2, 2, 10, 12) // 从下标为2 的地方开始删除 后面的两个元素, 并在这个地方插入 10,12两个元素
console.log(spliceArr1)
// -> [1, 2, 10, 12, 5, 6] var spliceArr = [1, 2, 3, 4, 5, 6]
spliceArr.splice(2, 0, 10, 12) // 当需要删除的元素为0, 相当于在这个位置插入元素
console.log(spliceArr)
// -> [1, 2, 10, 12, 3, 4, 5, 6]

13.copyWithin(target, start, end): 从数组的指定位置拷贝元素到数组的另一个指定位置中

  /*
target: 必需。复制到指定目标索引位置。
start: 必需。元素复制的起始位置。
end: 可选。停止复制的索引位置 (默认为 array.length)
*/
var copyWithinArr = [1, 2, 3, 4, 5, 6]
copyWithinArr.copyWithin(1, 2, 4)
console.log(copyWithinArr)
// -> [1, 3, 4, 4, 5, 6]

14.fill(value, start, end): 用于将一个固定值替换数组的元素

  /*
value: 必需。填充的值。
start: 可选。开始填充位置。
end: 可选。停止填充位置 (默认为 array.length)
*/
var fillArr = [1, 2, 3, 4, 5, 6]
fillArr.fill(9, 2, 4)
console.log(fillArr)
// -> [1, 2, 9, 9, 5, 6]

15.includes(searchElement, fromIndex):用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false

  var includesArr = [1, 2, 3, 4, 5, 6]
var includes1 = includesArr.includes(3)
var includes2 = includesArr.includes(10)
console.log(includes1, includes2)
// -> true, false

16.indexOf(item,start):可返回某个指定的字符串值在字符串中首次出现的位置

  var indexOfArr = [1, 2, 3, 4, 3, 6]
var indexOfEle = indexOfArr.indexOf(3)
console.log(indexOfEle)
// -> 2

17.lastIndexOf(item,start):返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索

  var lastIndexOfArr = [1, 2, 3, 4, 3, 6]
var lastIndexOfEle = lastIndexOfArr.lastIndexOf(3)
console.log(lastIndexOfEle)
// -> 4

18.find(function(currentValue, index, arr),thisValue): 返回传入一个测试条件(函数)符合条件的数组第一个元素

  // function(currentValue, index, arr):
// a. currentValue: 必需。当前元素
// b. index: 可选。当前元素的索引值
// c. arr: 可选。当前元素所属的数组对象
// thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 var findArr = [1, 2, 3, 4, 5, 6]
var findEle = findArr.find( function(currentValue, index, arr) {
return currentValue >= 4
})
console.log(findEle)

19.findIndex(function(currentValue, index, arr),thisValue): 返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var findIndexArr = [1, 2, 3, 4, 5, 6]
var findIndexEle = findIndexArr.findIndex( function(currentValue, index, arr) {
return currentValue >= 4
})
console.log(findIndexEle)

20.forEach(function(currentValue, index, arr), thisValue): 用于调用数组的每个元素,并将元素传递给回调函数。没有返回值

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var forEachArr = [1, 2, 3, 4, 5, 6]
forEachArr.forEach( function(currentValue, index, arr){
console.log(currentValue)
})
// -> 依次打印 1 2 3 4 5 6, 没有返回值

21.map(function(currentValue, index, arr), thisValue): 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var mapArr = [1, 2, 3, 4, 5, 6]
var mapNewArr = mapArr.map( function(currentValue, index, arr){
// console.log(currentValue)
return currentValue*2
})
console.log(mapNewArr)
// -> [2, 4, 6, 8, 10, 12]

22.reduce(function(total, currentValue, index, arr), thisValue): 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
d: total: 必需。初始值, 或者计算结束后的返回值。
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var reduceArr = [1, 2, 3, 4, 5, 6]
var reduceNewArr = reduceArr.reduce( function(total, currentValue, index, arr){
return total - currentValue
})
console.log(reduceNewArr)
// -> 19

23.reduceRight(function(total, currentValue, index, arr), thisValue): 接收一个函数作为累加器,数组中的每个值(从右到左)开始缩减,最终计算为一个值

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
d: total: 必需。初始值, 或者计算结束后的返回值。
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var reduceRightArr = [1, 2, 3, 4, 5, 6]
var reduceRightNewArr = reduceRightArr.reduceRight( function(total, currentValue, index, arr){
return total - currentValue
})
console.log(reduceRightNewArr)
// -> -9

24.some(function(currentValue, index, arr), thisValue): 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var someArr = [1, 2, 3, 4, 5, 6]
var someEle1 = someArr.some( function(currentValue, index, arr){
return currentValue > 4
})
var someEle2 = someArr.some( function(currentValue, index, arr){
return currentValue > 6
})
console.log(someEle1, someEle2)
// -> true, false

25.every(function(currentValue, index, arr), thisValue): 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var everyArr = [1, 2, 3, 4, 5, 6]
var everyEle1 = everyArr.every( function(currentValue, index, arr){
return currentValue > 0
})
var everyEle2 = everyArr.every( function(currentValue, index, arr){
return currentValue > 1
})
console.log(everyEle1, everyEle2)
// -> true, false

26.filter(function(currentValue, index, arr), thisValue):创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

  /*
function(currentValue, index, arr):
a. currentValue: 必需。当前元素
b. index: 可选。当前元素的索引值
c. arr: 可选。当前元素所属的数组对象
thisValue: 可选。 传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 */
var filterArr = [1, 2, 3, 4, 5, 6]
var filterNewArr = filterArr.filter( function(currentValue, index, arr){
return currentValue > 2
})
console.log(filterNewArr)
// -> [3, 4, 5, 6]

27.from: 将类数组对象和可遍历对象转化为数组

  fromObj = {
0: '0',
1: '1',
3: '3',
length:4
}
arrayArr = Array.from(fromObj)
console.log(arrayArr)
// -> ["0", "1", undefined, "3"]

28.of: 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型

      Array.of(7);       // -> [7]
Array.of(1, 2, 3); // -> [1, 2, 3] Array(7); // -> [ , , , , , , ]
Array(1, 2, 3); // -> [1, 2, 3]

javascript 方法总结(Array篇)的更多相关文章

  1. JavaScript引用类型之Array数组的排序方法

    数组中已经存在两个JavaScript给我们定义好的重排序的方法:reverse()和sort()方法,下面来简单分析下: 1.reverse()    用于反转数组项的顺序,代码如下: <sc ...

  2. JavaScript中数组Array方法详解

    ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...

  3. JavaScript中的Array.prototype.slice.call()方法学习

    JavaScript中的Array.prototype.slice.call(arguments)能将有length属性的对象转换为数组(特别注意: 这个对象一定要有length属性). 但有一个例外 ...

  4. javascript中的array对象属性及方法

    Array 对象 Array 对象用于在单个的变量中存储多个值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, e ...

  5. JavaScript引用类型之Array数组的栈方法与队列方法

    一.栈方法 ECMAScript数组也提供了一种让数组的行为类似与其他数据结构的方法.具体的来说,数组可以变现的向栈一样,栈就是一种可以限制插入和删除向的数据结构.栈是一种LIFO(Last In F ...

  6. JavaScript 面向对象(一) —— 基础篇

    学好JS的面向对象,能很大程度上提高代码的重用率,像jQuery,easyui等,这篇博客主要从细节上一步步讲JS中如何有效地创建对象,也可以看到常见的创建对象的方式,最后也会附上一些JS面向对象的案 ...

  7. 曲线参数化的Javascript实现(代码篇)

    在曲线参数化的Javascript实现(理论篇)中推出了曲线弧长积分的公式,以及用二分法通过弧长s来查找样条曲线上对应的u,再求Q(u)的值.弧长积分函数如下: ,其中-----公式1 Simpson ...

  8. 深入理解javascript函数系列第二篇——函数参数

    × 目录 [1]arguments [2]内部属性 [3]函数重载[4]参数传递 前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传 ...

  9. javascript类型系统之Array

    原文:javascript类型系统之Array 目录 [1]数组创建 [2]数组操作 [3]继承的方法 [4]实例方法 数组转换 数组检测 栈和队列 排序方法 操作方法 位置方法 前面的话 数组是一组 ...

  10. JavaScript 面向对象(三) —— 高级篇

    JavaScript 面向对象(一) —— 基础篇 JavaScript 面向对象(二) —— 案例篇 一.json方式的面向对象 首先要知道,js中出现的东西都能够放到json中.关于json数据格 ...

随机推荐

  1. 服务端JSON内容中有富文本时

    问题背景 由于数据中存在复杂的富文本,包含各种引号和特殊字符,导致后端和前端通过JSON格式进行数据交互引发前端JSON解析出错. 解决方案 后端将富文本内容 ConvertToBase64Strin ...

  2. KEUC首次落地中国,网易云深度剖析Kubernetes优化与实践

    本文由  网易云发布. 10 月 15 日,聚焦 Kubernetes 中国行业应用与技术落地的首届中国 Kubernetes 用户大会(KEUC)在杭州成功举办.本次大会吸引了来自全球各地的技术精英 ...

  3. flask之flask_sqlalchemy

    一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL ...

  4. MVC4删除 pages引发的异常 System.Web.Optimization找不到引用

    在MVC4的开发中,如果创建的项目为空MVC项目,那么在App_Start目录下没有BundleConfig.cs项的内容,在手动添加时在整个库中都找不到:System.Web.Optimizatio ...

  5. servlet转发与重定向区别

    servlet转发与重定向   HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParam ...

  6. webpack初学者(1)

    最近在学习webpack的总结,不完善的希望各位提出宝贵的建议.本篇是以webpack3.0版本为基础的学习总结. 一.webpack的概念及作用 wepack是一个模块打包兼优化工具.往往一个项目中 ...

  7. Window Screen对象

    window.screen 对象包含有关用户屏幕的信息. window.screen对象在编写时可以不使用 window 这个前缀.一些属性: screen.availWidth // 可用的屏幕宽度 ...

  8. jq03--基础函数

    我们继续学习jq的一些函数,包括向jq对象添加.删除CSS属性以及遍历DOM树. 1.获取.设置CSS类 addClass()--向被选元素添加1个或多个类属性 .importance{font-we ...

  9. 【原创】SSRS (SQL Serve Reporting Service) 访问权限的问题

    问题:The permissions granted to user 'TOUCHPOINTMED\sshi' are insufficient for performing this operati ...

  10. 剑指offer五十三之表示数值的字符串

    一.题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.1 ...