JavaScript数组中的22个常用方法
js 数组统计方法
js 数组统计方法
JavaScript中有许多数组统计方法,这些方法可以帮助我们对
数组进行各种统计操作。
下面我将介绍一些常用的数组统计方法:
1. `length`属性,可以用来获取数组的长度,即数组中元素的
个数。
2. `reduce`方法,可以对数组中的所有元素进行累加或者累乘
等操作。
例如,可以使用`reduce`方法来计算数组中所有元素的总和。
3. `map`方法,可以对数组中的每个元素进行操作,并返回一
个新的数组。
例如,可以使用`map`方法将数组中的每个元素乘以2。
4. `filter`方法,可以根据指定的条件过滤数组中的元素,并
返回一个符合条件的新数组。
例如,可以使用`filter`方法筛选出
数组中大于10的元素。
5. `find`方法,可以找到数组中符合指定条件的第一个元素,
并返回该元素。
例如,可以使用`find`方法找到数组中第一个大于
10的元素。
6. `indexOf`和`lastIndexOf`方法,可以分别用来查找指定元素在数组中的第一个和最后一个出现的位置。
7. `sort`方法,可以对数组中的元素进行排序操作。
例如,可以使用`sort`方法对数组中的元素进行升序或者降序排序。
8. `forEach`方法,可以对数组中的每个元素执行指定操作,例如打印每个元素的值。
以上是一些常用的JavaScript数组统计方法,它们可以帮助我们对数组进行各种统计和操作,从而更好地处理和分析数据。
希望这些信息能够对你有所帮助。
数组的常用方法总结22种
数组的常用方法总结22种数组是一种常用的数据结构,经常用于存储和操作一组相似类型的数据。
在许多编程语言中,数组都提供了一系列常用的方法来方便地操作数组。
以下是常用的数组方法的总结:1. Array.isArray(: 判断一个对象是否为数组。
2. push(: 将一个或多个元素添加到数组的末尾。
3. pop(: 删除数组的最后一个元素并返回该元素。
4. shift(: 删除数组的第一个元素并返回该元素。
5. unshift(: 将一个或多个元素添加到数组的开头。
6. slice(: 返回一个新的数组,包含原数组指定范围内的元素。
7. splice(: 从数组中添加或删除元素。
8. concat(: 连接两个或多个数组,并返回结果。
9. join(: 将数组的所有元素连接为一个字符串。
10. toString(: 将数组转换为字符串,并返回结果。
11. indexOf(: 返回指定元素在数组中第一次出现的位置。
12. lastIndexOf(: 返回指定元素在数组中最后一次出现的位置。
13. includes(: 判断数组是否包含指定元素。
14. every(: 判断数组中的所有元素是否满足指定条件。
15. some(: 判断数组中是否存在满足指定条件的元素。
16. filter(: 过滤数组中满足指定条件的元素,并返回结果数组。
17. map(: 对数组中的每个元素执行指定操作,返回操作后的结果数组。
18. reduce(: 对数组中的元素执行指定累加操作,返回累加结果。
19. reverse(: 颠倒数组中元素的顺序。
20. sort(: 对数组中的元素进行排序。
21. fill(: 用指定的值填充数组的所有元素。
22. forEach(: 对数组中的每个元素执行指定操作。
以上是常用的数组方法的总结,这些方法可以满足大多数数组操作的需求。
在实际应用中,根据具体需求选择合适的方法来操作数组可以大大提高编程效率。
js数组方法详解(最新最全)
js数组⽅法详解(最新最全)数组是js中最常⽤到的数据集合,其内置的⽅法有很多,熟练掌握这些⽅法,可以有效的提⾼我们的⼯作效率,同时对我们的代码质量也是有很⼤影响。
本⽂所有的栗⼦都是在es7环境下测试的,如果有问题欢迎留⾔交流创建数组我将创建数组的⽅式分为以下四⼤类⼀、字⾯量⽅式使⽤对象字⾯量⽅式创建数组是我们最常⽤的⼀种⽅式const array1 = [1, 2, 3, 4, 5];⼆、使⽤Array构造⽅法⽆参构造使⽤⽆参构造可以创建⼀个长度为0的空数组const array1 = new Array();带参构造1. 如果只传⼀个数值参数,则表⽰创建⼀个初始长度为指定数值的空数组const array2 = new Array(3);2. 如果传⼊⼀个⾮数值的参数或者参数个数⼤于1,则表⽰创建⼀个包含指定元素的数组const array3 = new Array(1, 2, 3, 'array'); // [1, 2, 3, "array"]const array4 = new Array('23'); // ["23"]三、Array.of⽅法创建数组(es6新增)ES6为数组新增创建⽅法的⽬的之⼀,是帮助开发者在使⽤Array构造器时避开js语⾔的⼀个怪异点。
Array.of()⽅法总会创建⼀个包含所有传⼊参数的数组,⽽不管参数的数量与类型。
let arr = Array.of(1, 2);console.log(arr.length);//2let arr1 = Array.of(3);console.log(arr1.length);//1console.log(arr1[0]);//3let arr2 = Array.of('2');console.log(arr2.length);//1console.log(arr2[0]);//'2'在使⽤Array.of()⽅法创建数组时,只需将想要包含在数组内的值作为参数传⼊。
JavaScript之数组(Array)详解
JavaScript之数组(Array)详解篇一:Javascript数组及其操作Javascript数组及其操作1.如何创建数组2.如何对数组进行操作(添加,删除,读取)3.数组常见方法和属性如何创建一个数组,一般地根据初始化设定简单分为3种:1.单纯创建数组:var arr=new Array();要点:用new关键字创建数组对象Array(),Array()对象是一个本地类,可以用new创建一个对象后使用2.创建数组的同时规定数组大小:var arr=new Array(10);//这里就创建了一个初始化大小为10的数组注意:当使用数组大小操作初始化大小时,数组会自动被撑大,不会像C语言那样发生错误.动态增长是js数组的一个性质.另外,js中支持最大数组长度为42949672953.直接初始化:var arr=new Array("love","hate","pain");//这里就直接初始化了数组或var arr=["happy","cute","scare"];//括号也可以声明一个数组对象当然,类似C语言,可以定义2维3维和多维的数组,例如:var myArray = new Array();for(var i=0;i myArray[i]=new Array();myArray[i][0]=Math.floor(Math.random()*10);myArray[i][1]=Math.floor(Math.random()*10);myArray[i][2]=Math.floor(Math.random()*10);myArray[i][3]=Math.floor(Math.random()*10);myArray[i][4]=Math.floor(Math.random()*10);myArray[i][5]=Math.floor(Math.random()*10);myArray[i][6]=Math.floor(Math.random()*10);myArray[i][7]=Math.floor(Math.random()*10);myArray[i][8]=Math.floor(Math.random()*10);}myArray.sort( function(x, y) ...{return(x[0]==y[0])?((x[4]==y[4])?(x[8]-y[8]):(x[4]-y[4])):(x[2]-y[2])});for(var i=0;i document.write(myArray[i].join(",") + "");}数组的属性:lengtharr.length返回数组arr的长度,常见于循环中对数组的遍历,比如:for(var i=0;i 执行部分}数组元素的访问: arr[index],其中index表示索引即数组基数,从0开始,共有arr.length个元素.比如: arr[0]访问第一个数组元素,arr[1]访问第二个数组元素....依次类推数组的操作方法:先概览下下面的这些操作数组常用的方法(13个)toString(),valueOf(),toLocalString(),join(),split(),slice(),concat(), pop(),push(),shift(),unshift(),sort(),splice()下面逐一分析这些方法的功能和用法.toString(),valueOf(),toLocalString():功能:返回数组的全部元素注:数组名也可以返回整个数组代码:var m=["am","bm","cm"];//用括号声明一个数组对象alert(m.toString());//toString()返回数组对象的所有内容,用逗号分割,即am,bm,cmalert(m.valueOf());//valueOf()也返回数组对象的所有内容alert(m.toLocaleString());//toLocaleString()也返回数组对象的所有内容,但有地区语言区别,暂不研究alert(m);//数组名也返回数组对象的所有内容join():功能:把数组各个项用某个字符(串)连接起来,但并不修改原来的数组代码:var m=["am","bm","cm"];//用括号声明一个数组对象var n=m.join("---");//用---连接am,bm,cm.alert(m.toString());//m并没有被修改,返回am,bm,cmalert(n);//n是一个字符串,为am---bm---cmsplit():功能:把一个字符串按某个字符(串)分割成一个数组,但不修改原字符串代码:var str="I love maomao,I am caolvchong";var arr=str.split("o");//按字符o把str字符串分割成一个数组alert(arr);//输出整个数组slice():返回某个位置开始(到某个位置结束)的数组部分,不修改原数组代码:var n=m.slice(2);//返回第二个元素bm后面的元素,即cm,dm,em,fmvar q=m.slice(2,5);//返回第二个元素后到第五个元素,即cm,dm,emalert(n);alert(q);数组对象的栈操作:push():数组末尾添加一个项pop():删除数组最后一个项代码:var m=["am","bm","cm","dm","em","fm"];m.push("gm");//在数组末尾添加元素gmalert(m);m.pop();//删除数组最后一个元素gmalert(m);数组对象的队列操作:unshift():数组头添加一个项shift():删除数组第一个项代码:var m=["am","bm","cm","dm","em","fm"];m.unshift("gm");//在数组第一个元素位置添加元素gmalert(m);m.shift();//删除数组第一个元素gmalert(m);sort():数组按字符的ASCII码进行排序,修改数组对象注:即便是数字数组,也将转化为字符串来进行比较排序代码:m.sort();//按字母序排序alert(m);concat():在数组尾添加元素,但不修改数组对象代码:var m=["am","bm"]var n=m.concat("cm");//添加一项cm,并且赋予新数组对象alert(m);//原数组没有被修改alert(n);//输出新数组对象splice():在数组的任意位置进行添加,删除或者替换元素,直接修改数组对象细节:splice()有三个参数或三个以上参数,前两个是必须的,后面参数是可选的进行添加:splice(起始项,0,添加项)进行删除:splice(起始项,要删除的项个数)进行替换:splice(起始项,替换个数,替换项) 这个其实是添加删除的共同结果代码:var m=["am","bm"]m.splice(1,0,"fm","sm");//在第一项后面添加fm和sm,返回am,fm,sm,bmalert(m);m.splice(2,1);//删除第二项后面一项(即第三项sm,返回am,fm,bm)alert(m);m.splice(2,1,"mm");//替换第二项后面一项(即第三项,返回am,fm,mm)alert(m);JavaScript数组操作函数join(delimiter): 把数组中各个元素使用分隔符(delimiter)拼成字符串concat(array1, array2, ...): 合并数组,对原数组不影响,只是返回合并后的新数组pop(): 删除并返回最后一个元素push(element1, element2, ...): 在数组末尾追加元素shift(): 删除并返回第一个元素unshift(element1, element2, ...): 在数组开始位置添加元素reverse(): 将数组元素顺序首尾反转sort(function): 给数组排序如果不给参数,默认按字符排序(所有元素是数字也不会按数字排序的) 参数必须是一个函数,类似function(a, b) {},在函数中判断a, b的大小,a>b返回正数,a slice(start, end): 返回一个新的数组,将start 开始,到end结束(不包括end)之间的元素复制到新数组中splice(start, count, replaceElement1, replaceElement2, ...): 删除或者替换数组元素,从start开始,对count个元素进行删除或替换如果提供replaceElement参数则进行替换,否则进行删除操作,被替换的元素个数和replaceElements的个数不必相等返回一个数组,包含被删除或替换掉的元素判断是否数组的方法var arrayVar = ["aaa", "bbb", "ccc"];var nonArrayVar = { length:4, otherAttribute:"attr" };document.write(arrayVar.constructor==Array);document.write("");document.write(nonArrayVar.constructor==Array);结果是true, falsegrep、mapPerl语言带出来的东西,jQuery实现selector时用了这种方式grep对数组的grep操作,指类似这样的代码:Array newArray = grep(condition, oldArray),这个操作将对oldArray 数组的每个元素进行遍历,如果当前处理元素符合条件condition,则加入到返回数组中 jQuery中的grep类似这样: function( elems, callback),elems是DOM元素集合,callback是实现selector的一些表达式函数,如果callback返回true则表明当前处理的元素符合selector表达式篇二:javaScript基础之——数组javaScript基础之——数组目录创建数组的方法 .................................................................. .. (3)数组的内置方法 .................................................................. .. (3)数组首尾位置的数据项添加及删除方法 (3)array.push( value,… ) --- 向数组的尾部添加值 (4)array.unshift( value,… ) --- 在数组头部插入一个元素 (4)array.pop( ) --- 删除并返回数组的最后一个元素 (5)array.shift( ) --- 将元素移出数组 (6)重排序方法 .................................................................. .. (6)array.reverse() --- 颠倒数组中元素的顺序 (7)array.sort( fn ) ---对数组元素进行排序 (7)数组的固定位置的增删改方法 .................................................................. (8)array.splice(start,deleteCount,value,...) --- 插入、删除或替换数组的元素 . (8)可以复制数组的方法 .................................................................. . (8)array.slice(start,end) --- 返回数组的一部分 (9)array.concat(value,…) --- 连接数组 (9)将数组转化为字符串的方法 .................................................................. . (10)array.join(separator) ---将数组元素连接起来以构建一个字符串 (10)array.toString() ---将数组转换成一个字符串 (11)array.toLocaleString() ---把数组转换成局部字符串 (11)数组的属性:length............................................................... (12)ECMAScript 5 添加的数组方法................................................................... (12)位置方法 .................................................................. (12)迭代方法 --- 不修改原数组 .................................................................. .. (13)归并方法 --- 迭代数组所有项,然后构建一个最终返回的值 (13)数组是复合数据类型(对象类型)的数据,它的数据索引为数字,从0开始,逐一递增,有个length属性,代表数组项的总数。
js中常用方法
js中常用方法JavaScript是一种广泛使用的编程语言,它具有许多常用方法,这些方法可以帮助开发人员更轻松地完成任务。
在本文中,我们将介绍一些常用的JavaScript方法。
1.字符串方法JavaScript中的字符串方法可以帮助我们处理字符串。
例如,我们可以使用“length”方法获取字符串的长度,使用“indexOf”方法查找字符串中的特定字符或子字符串,使用“slice”方法截取字符串的一部分等等。
2.数组方法JavaScript中的数组方法可以帮助我们处理数组。
例如,我们可以使用“push”方法向数组末尾添加一个元素,使用“pop”方法从数组末尾删除一个元素,使用“shift”方法从数组开头删除一个元素等等。
3.对象方法JavaScript中的对象方法可以帮助我们处理对象。
例如,我们可以使用“hasOwnProperty”方法检查对象是否具有特定属性,使用“keys”方法获取对象的所有属性名称,使用“values”方法获取对象的所有属性值等等。
4.数学方法JavaScript中的数学方法可以帮助我们进行数学计算。
例如,我们可以使用“Math.round”方法将数字四舍五入到最接近的整数,使用“Math.floor”方法将数字向下取整到最接近的整数,使用“Math.ceil”方法将数字向上取整到最接近的整数等等。
5.日期方法JavaScript中的日期方法可以帮助我们处理日期和时间。
例如,我们可以使用“Date.now”方法获取当前日期和时间的时间戳,使用“getFullYear”方法获取当前年份,使用“getMonth”方法获取当前月份等等。
JavaScript中的常用方法可以帮助我们更轻松地完成任务。
无论是处理字符串、数组、对象、数学计算还是日期和时间,这些方法都可以帮助我们更高效地编写代码。
因此,熟练掌握这些方法是成为一名优秀的JavaScript开发人员的必备技能。
js对象数组根据元素排序的方法
js对象数组根据元素排序的方法JS对象数组排序是前端开发中常见的需求之一。
在实际开发中,我们通常会遇到需要根据对象数组中的某个属性进行排序的情况。
本文将介绍几种常用的方法来实现这一目标。
一、使用数组的sort()方法sort()方法是数组原生的方法之一,它可以用来对数组进行排序。
我们可以自定义一个比较函数作为sort()方法的参数,通过比较函数来指定排序的规则。
下面是一个示例代码:```javascriptlet students = [{ name: '小明', age: 20 },{ name: '小红', age: 18 },{ name: '小刚', age: 22 }];students.sort((a, b) => {if (a.age > b.age) {return 1;} else if (a.age < b.age) {return -1;} else {return 0;}});console.log(students);```在上面的代码中,我们根据学生的年龄进行排序,年龄小的学生排在前面。
sort()方法会修改原数组,所以输出结果为:```javascript[{ name: '小红', age: 18 },{ name: '小明', age: 20 },{ name: '小刚', age: 22 }]```二、使用Lodash库的sortBy()方法Lodash是一个实用的JavaScript工具库,其中包含了很多方便的方法,包括用于操作数组的方法。
我们可以使用Lodash库的sortBy()方法来排序对象数组。
下面是一个示例代码:```javascriptlet students = [{ name: '小明', age: 20 },{ name: '小红', age: 18 },{ name: '小刚', age: 22 }];let sortedStudents = _.sortBy(students, 'age');console.log(sortedStudents);```在上面的代码中,我们通过指定属性名'age'来进行排序。
js中操作字符串数组的方法
js中操作字符串数组的方法JavaScript中操作字符串数组的方法本文将介绍一些在JavaScript中操作字符串数组的常用方法,包括新增、修改、删除、查找、遍历等操作。
以下是具体的方法:1. 添加元素到数组末尾•使用push()方法可以将一个或多个元素添加到数组末尾。
const fruitArray = ['apple', 'banana'];('orange');(fruitArray); // 输出 ['apple', 'banana', 'orange']2. 从数组末尾移除元素•使用pop()方法可以从数组末尾移除一个元素,并返回该元素的值。
const fruitArray = ['apple', 'banana', 'orange']; const removedFruit = ();(removedFruit); // 输出 'orange'(fruitArray); // 输出 ['apple', 'banana']3. 添加元素到数组开头•使用unshift()方法可以将一个或多个元素添加到数组开头。
const fruitArray = ['apple', 'banana'];('orange');(fruitArray); // 输出 ['orange', 'apple', 'banana']4. 从数组开头移除元素•使用shift()方法可以从数组开头移除一个元素,并返回该元素的值。
const fruitArray = ['orange', 'apple', 'banana']; const removedFruit = ();(removedFruit); // 输出 'orange'(fruitArray); // 输出 ['apple', 'banana']5. 连接数组元素为字符串•使用join()方法可以将数组元素连接成一个字符串,可以指定连接符。
js中数组常用方法总结
js中数组常⽤⽅法总结操作数组操作数组,印象中操作数组的⽅法很多,下⾯总结了⼀下数组中常⽤的⼏个⽅法:JavaScript中创建数组有两种⽅式(⼀)使⽤ Array 构造函数:var arr1 = new Array(); //创建⼀个空数组var arr2 = new Array(20); // 创建⼀个包含20项的数组var arr3 = new Array("lily","lucy","Tom"); // 创建⼀个包含3个字符串的数组(⼆)使⽤数组字⾯量表⽰法:var arr4 = []; //创建⼀个空数组var arr5 = [20]; // 创建⼀个包含1项的数组var arr6 = ["lily","lucy","Tom"]; // 创建⼀个包含3个字符串的数组数组的⽅法有数组原型⽅法,也有从object对象继承来的⽅法,这⾥我们只介绍数组的原型⽅法,数组原型⽅法主要有以下这些:join()push()和pop()shift() 和 unshift()sort()reverse()concat()slice()splice()indexOf()和 lastIndexOf() (ES5新增)forEach() (ES5新增)map() (ES5新增)filter() (ES5新增)every() (ES5新增)some() (ES5新增)reduce()和 reduceRight() (ES5新增)下⾯详细介绍⼀下各个⽅法的基本功能。
1、join()join(separator): 将数组的元素组起⼀个字符串,以separator为分隔符,省略的话则⽤默认⽤逗号为分隔符,该⽅法只接收⼀个参数:即分隔符。
1 2 3 4var arr = [1,2,3];console.log(arr.join()); // 1,2,3 console.log(arr.join("-")); // 1-2-3 console.log(arr); // [1, 2, 3](原数组不变)通过join()⽅法可以实现重复字符串,只需传⼊字符串以及重复的次数,就能返回重复后的字符串,函数如下:1 2 3 4 5function repeatString(str, n) {return new Array(n + 1).join(str);}console.log(repeatString("abc", 3)); // abcabcabc console.log(repeatString("Hi", 5)); // HiHiHiHiHi2、push()和pop()push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
js 数组子集方法
js 数组子集方法JS数组是一种常用的数据结构,用于存储一组有序的数据。
在实际开发中,我们经常需要对数组进行操作,其中之一就是获取数组的子集。
本文将介绍几种常见的JS数组子集方法。
一、数组切片方法slice()slice()方法可以从原数组中提取指定的起始位置和结束位置的元素,返回一个新的数组。
它接受两个参数,分别是起始位置和结束位置(不包括结束位置本身)。
例如,我们有一个数组arr=[1, 2, 3, 4, 5, 6],想要获取索引1到3(不包括3)的子集,可以使用slice()方法:arr.slice(1, 3),返回的子集为[2, 3]。
二、数组过滤方法filter()filter()方法可以根据指定的条件筛选出符合要求的元素,并返回一个新的数组。
它接受一个回调函数作为参数,该回调函数用来判断每个元素是否符合条件。
例如,我们有一个数组arr=[1, 2, 3, 4, 5, 6],想要获取所有大于3的元素组成的子集,可以使用filter()方法:arr.filter(item => item > 3),返回的子集为[4, 5, 6]。
三、数组映射方法map()map()方法可以对数组中的每个元素进行操作,并返回一个新的数组。
它接受一个回调函数作为参数,该回调函数用来对每个元素进行操作并返回操作后的结果。
例如,我们有一个数组arr=[1, 2, 3, 4, 5, 6],想要将每个元素都乘以2得到的子集,可以使用map()方法:arr.map(item => item * 2),返回的子集为[2, 4, 6, 8, 10, 12]。
四、数组拼接方法concat()concat()方法可以将多个数组拼接成一个新的数组,并返回这个新数组。
它接受多个参数,每个参数可以是一个数组或者一个元素。
例如,我们有两个数组arr1=[1, 2, 3]和arr2=[4, 5, 6],想要将它们拼接成一个新的数组,可以使用concat()方法:arr1.concat(arr2),返回的子集为[1, 2, 3, 4, 5, 6]。
js中数组循环方法
js中数组循环方法JavaScript中有多种循环数组的方法,包括for循环、forEach()、map()、filter()、reduce()等。
下面逐一介绍这些方法的使用。
1. for循环for循环是最基本的循环方法,可以遍历数组中的每一个元素,并对其进行操作。
语法如下:```for (let i = 0; i < array.length; i++) {// 对数组中的每个元素进行操作}```其中,i表示数组中的索引,array.length表示数组长度。
注意,数组的索引从0开始,因此i的初始值为0。
2. forEach()forEach()方法是ES5引入的一个遍历数组的方法,可以使用一个函数对数组中的每个元素进行操作。
语法如下:```array.forEach(function(element) {// 对数组中的每个元素进行操作});```其中,element表示数组中的元素。
需要注意的是,forEach()方法会自动跳过数组中的空元素,因此不需要额外判断。
3. map()map()方法也是ES5中引入的一个遍历数组的方法,可以对数组中的每个元素进行操作,并返回一个新的数组。
语法如下:```let newArray = array.map(function(element) {// 对数组中的每个元素进行操作,并返回新的值return newValue;});```其中,newArray表示新的数组,element表示数组中的元素,newValue表示对元素进行操作后得到的新值。
4. filter()filter()方法也是ES5中引入的一个遍历数组的方法,可以根据条件过滤出数组中符合要求的元素,并返回一个新的数组。
语法如下: ```let newArray = array.filter(function(element) {// 对数组中的每个元素进行判断,返回符合要求的元素return condition;});```其中,newArray表示新的数组,element表示数组中的元素,condition表示判断条件。
js中数组遍历方法
js中数组遍历方法在JavaScript中,数组是一种特殊的对象,用于存储多个值。
为了方便操作数组中的元素,JavaScript提供了多种遍历数组的方法。
接下来,我将介绍一些常用的数组遍历方法,包括for循环、forEach方法、map方法、filter方法、reduce方法等。
1. for循环:for循环是最基本的数组遍历方法,可以使用索引值来访问数组中的每个元素。
例如:```javascriptvar arr = [1, 2, 3, 4, 5];for (var i = 0; i < arr.length; i++)console.log(arr[i]);```2. forEach方法:forEach方法是数组对象的方法,用于遍历数组中的每个元素,并对每个元素执行指定的回调函数。
它接受一个回调函数作为参数,回调函数中可以访问当前元素、当前索引和原始数组。
例如:```javascriptvar arr = [1, 2, 3, 4, 5];arr.forEach(function(element, index, array)console.log(element);});```3. map方法:map方法也是数组对象的方法,用于遍历数组中的每个元素,并对每个元素执行指定的回调函数,并返回一个新的数组,新数组中的元素是原始数组中的每个元素经过回调函数处理后的结果。
例如:```javascriptvar arr = [1, 2, 3, 4, 5];var newArr = arr.map(function(element, index, array)return element * 2;});console.log(newArr); // [2, 4, 6, 8, 10]```4. filter方法:filter方法也是数组对象的方法,用于遍历数组中的每个元素,并对每个元素执行指定的回调函数,返回一个新的数组,新数组中的元素是原始数组中满足回调函数条件的元素。
javascript数组应用案例
javascript数组应用案例JavaScript数组是一种用于存储多个值的数据结构。
它可以包含不同类型的元素,如数字、字符串、对象等。
数组提供了许多有用的方法,可以对数组进行操作和处理。
下面是10个JavaScript数组应用案例。
1. 数组的创建和访问数组可以使用数组字面量或Array构造函数来创建。
通过索引值可以访问数组中的元素。
例如:```javascriptlet fruits = ['apple', 'banana', 'orange'];console.log(fruits[0]); // 输出: appleconsole.log(fruits[2]); // 输出: orange```2. 数组的长度可以使用length属性获取数组的长度。
例如:```javascriptlet fruits = ['apple', 'banana', 'orange'];console.log(fruits.length); // 输出: 3```3. 数组的迭代可以使用for循环或forEach方法来迭代数组的所有元素。
例如:```javascriptlet fruits = ['apple', 'banana', 'orange'];for (let i = 0; i < fruits.length; i++) {console.log(fruits[i]);}fruits.forEach(function(fruit) {console.log(fruit);});```4. 数组的添加和删除元素可以使用push和pop方法在数组的末尾添加和删除元素。
例如:```javascriptlet fruits = ['apple', 'banana', 'orange'];fruits.push('grape'); // 在末尾添加元素console.log(fruits); // 输出: ['apple', 'banana', 'orange', 'grape']fruits.pop(); // 删除末尾的元素console.log(fruits); // 输出: ['apple', 'banana', 'orange']```5. 数组的排序可以使用sort方法对数组进行排序。
数组常用方法(含es6)
数组常用方法(含es6)数组是JavaScript中非常重要的数据类型之一,它能够存储多个元素,并且支持许多常用的方法操作。
ES6引入了一些新的数组方法,这些方法能够让我们更加方便地对数组进行处理。
1. push方法:将一个或多个元素添加到数组末尾,同时返回新的数组长度。
2. pop方法:删除数组的最后一个元素,并返回该元素的值。
3. shift方法:删除数组的第一个元素,并返回该元素的值。
4. unshift方法:将一个或多个元素添加到数组的开头,同时返回新的数组长度。
5. slice方法:截取数组的一部分并返回一个新的数组,不会改变原数组。
6. splice方法:向数组中添加或删除元素,可以对原数组进行修改。
第一个参数为起始位置,第二个参数为删除元素的个数,第三个参数为要添加到数组中的元素。
7. sort方法:对数组进行排序,可以通过传递一个函数来自定义排序规则。
8. reverse方法:颠倒数组中的元素顺序,会改变原数组。
9. map方法:将数组中的每一个元素应用到某个函数上,并返回一个新的数组,不会改变原数组。
10. filter方法:返回一个新的数组,其中包含所有满足条件的元素,不会改变原数组。
11. reduce方法:将数组中的所有元素通过某个函数进行累加,并返回一个结果。
以上是常见的数组方法,ES6中还添加了以下新的数组方法:12. find方法:返回满足条件的第一个元素,如果找不到,则返回undefined。
13. findIndex方法:返回满足条件的第一个元素的下标,如果找不到,则返回-1。
14. includes方法:判断数组中是否包含某个元素,返回布尔值。
15. fill方法:用指定的元素填充数组,可以指定起始位置和结束位置。
总之,数组是JavaScript中非常重要的一种数据类型,在我们的代码中经常会用到数组。
ES6中增加了一些新的数组方法,让我们能够更加方便地对数组进行操作,提高了代码的可读性和可维护性。
js 数组增加和删除元素的方法
一、介绍JavaScript(以下简称js)是一种脚本语言,主要用于网页开发,同时也可以用于服务器端开发。
在js中,数组是一种非常常见的数据结构,它允许存储多个值并按照索引来访问这些值。
本文将介绍js中数组增加和删除元素的方法,帮助读者更好地理解和应用数组操作。
二、数组增加元素的方法1. 使用push()方法push()方法可以向数组的末尾添加一个或多个元素,并返回新的长度。
例如:```jslet arr = [1, 2, 3];arr.push(4);console.log(arr); // [1, 2, 3, 4]```2. 使用unshift()方法unshift()方法可以向数组的开头添加一个或多个元素,并返回新的长度。
例如:```jslet arr = [2, 3, 4];arr.unshift(1);console.log(arr); // [1, 2, 3, 4]```3. 使用splice()方法splice()方法可以向数组的指定位置添加一个或多个元素,并返回被删除的元素。
例如:```jslet arr = [1, 2, 4];arr.splice(2, 0, 3);console.log(arr); // [1, 2, 3, 4]```三、数组删除元素的方法1. 使用pop()方法pop()方法可以删除数组的最后一个元素,并返回被删除的元素。
例如:```jslet arr = [1, 2, 3, 4];let deleted = arr.pop();console.log(arr); // [1, 2, 3]console.log(deleted); // 4```2. 使用shift()方法shift()方法可以删除数组的第一个元素,并返回被删除的元素。
例如:```jslet arr = [1, 2, 3, 4];let deleted = arr.shift();console.log(arr); // [2, 3, 4]console.log(deleted); // 1```3. 使用splice()方法splice()方法可以删除数组的指定位置的一个或多个元素,并返回被删除的元素。
js中array对象的常用方法
js中array对象的常用方法JavaScript中的数组是一种非常常见的数据类型,它是一组有序的数据集合。
数组可以存储任何类型的数据,包括字符串、数字、对象、函数等。
在JavaScript中,数组是通过Array对象来实现的。
Array对象提供了一些常用的方法,可以方便地对数组进行操作。
在本文中,我们将介绍一些常用的Array对象的方法。
1. push和pop方法push方法用于向数组末尾添加一个或多个元素。
它的语法如下: array.push(element1, element2, ..., elementN)其中,element1、element2、...、elementN是要添加到数组末尾的元素。
push方法会返回添加后数组的长度。
pop方法用于从数组末尾删除一个元素,并返回删除的元素。
它的语法如下:array.pop()pop方法不需要传递任何参数。
如果数组为空,则返回undefined。
2. shift和unshift方法shift方法用于从数组开头删除一个元素,并返回删除的元素。
它的语法如下:array.shift()shift方法不需要传递任何参数。
如果数组为空,则返回undefined。
unshift方法用于向数组开头添加一个或多个元素。
它的语法如array.unshift(element1, element2, ..., elementN) 其中,element1、element2、...、elementN是要添加到数组开头的元素。
unshift方法会返回添加后数组的长度。
3. join方法join方法用于将数组中的所有元素转换为一个字符串,并返回该字符串。
它的语法如下:array.join(separator)其中,separator是可选的分隔符,用于分隔数组中的元素。
如果省略separator,则默认使用逗号作为分隔符。
4. slice方法slice方法用于从数组中提取一个子数组,并返回该子数组。
JavaScript常用的数组操作方法以及ES6中数组新拓展的方法
JavaScript常⽤的数组操作⽅法以及ES6中数组新拓展的⽅法前⼏天⾯试的时候被⾯试官问了这个问题,愣了⼀下,突然没反应过来哪些操作⽅法是ES5哪些是ES6的(平时⽤得⽐较少,记得不是很牢),后⾯在⾯试官的提醒下才说出了map和filter。
今天就稍微总结⼀下在JavaScript中数组的操作⽅法吧。
⼀、ES6中数组新增的操作⽅法1. 数组解构运算符(spread)该运算符可以将⼀个数组变为参数序列。
console.log(...[1, 2, 3])// 1 2 3console.log(1, ...[2, 3, 4], 5)// 1 2 3 4 5[...document.querySelectorAll('div')]// [<div>, <div>, <div>]//如果扩展运算符后⾯是⼀个空数组,则不产⽣任何效果。
[...[], 1]// [1]这个操作⽅法⼀般是使⽤在函数传参,当函数的参数个数较多时,可以通过数组spread运算符直接将数组解构,变为参数序列传⼊。
function push(array, ...items) {array.push(...items);}function add(x, y) {return x + y;}const numbers = [4, 38];add(...numbers) // 42这样操作的好处是可以代替以前函数的apply⽅法。
在ES6之前,当数组需要传多个参数的时候,我们⼀般会使⽤apply来进⾏传参。
/* example1 */function f(x, y, z) {// ...}// ES5写法var args = [0, 1, 2];f.apply(null, args);// ES6写法f(...args)// example2// ES5写法Math.max.apply(null, [14, 3, 77]);// ES6写法Math.max(...[14, 3, 77]); // 等同于Math.max(14, 3, 77);同时,spread也可以对字符串进⾏结构:console.log([...'hello']);// [ "h", "e", "l", "l", "o" ]2. Array.fromArray.from⽅法⽤于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。
js 数组常用方法
js 数组常用方法1 JavaScript 中数组的常用方法JavaScript 中对数组类型的处理有很多方法,它们分为两个主要的类别:变更数组的方法,及循环数组的方法。
下面作一一介绍:1.变更数组的方法(1)concat()该方法用于将一个或多个数组合并为一个新的数组,并返回一个新数组。
(2)push()该方法对数组尾部进行添加元素,并返回新数组的长度。
(3)unshift()该方法对数组头部进行添加元素,并返回新数组的长度。
(4)pop()该方法在数组最后一个元素的上面弹出最后一个元素并返回该元素的值,同时改变原来的数组长度。
(5)shift()该方法在数组第一个元素的上面弹出第一个元素并返回该元素的值,同时改变原来的数组长度。
(6)splice()该方法用于移除数组中的一个或多个元素,并可以取代被移除的元素,最后返回被移除的元素。
(7)slice()该方法用于将一个数组进行截取,返回一个新的数组,被截取的数组不会被改变,但如果传入参数,则有可能改变原来的数组2.循环数组的方法(1)forEach()该方法是对数组中的每个元素执行某种操作,但它不会改变原来的数组,而是返回undefined。
(2)map()该方法将每个数组元素映射到新数组,最后返回一个新的数组,但不改变原来的数组。
(3)for...in该方法用于循环数组,它会遍历数组中的每个元素,并返回一个索引值。
(4)for...of该方法用于循环数组,它会遍历数组中的每个元素,并返回一个值。
因此以上就简单的介绍了JavaScript 中有关数组的常见方法,如果要正确的使用JavaScript 处理数组,首先需要熟悉上述方法,并进行灵活的运用。
js数组插入方法
js数组插入方法在JavaScript中,数组是一种非常常见、使用频率极高的数据结构。
当我们需要在数组中插入元素时,可以使用JavaScript提供的八种数组插入方法中的任意一种。
下面就让我们来一步一步地学习这些方法的使用吧!第一种方法:push()push()方法用于在数组末尾插入一个或多个元素,插入完成后返回数组的新长度。
这个方法的语法形式如下:```arr.push(element1, ..., elementN);```其中arr是要操作的数组,element1~elementN是要插入的元素。
下面是一个示例:```const arr = [1, 2, 3];arr.push(4, 5);console.log(arr);// [1, 2, 3, 4, 5]```第二种方法:unshift()unshift()方法用于在数组头部插入一个或多个元素,插入完成后返回数组的新长度。
这个方法的语法形式如下:```arr.unshift(element1, ..., elementN);```其中arr是要操作的数组,element1~elementN是要插入的元素。
下面是一个示例:```const arr = [1, 2, 3];arr.unshift(0, -1);console.log(arr);// [-1, 0, 1, 2, 3]```第三种方法:splice()splice()方法可以用于在数组的任意位置插入一个或多个元素。
这个方法的语法形式如下:```arr.splice(index, 0, element1, ..., elementN);```其中arr是要操作的数组,index是要插入元素的起始位置(从0开始计数),0表示要删除0个元素,element1~elementN是要插入的元素。
下面是一个示例:```const arr = [1, 2, 3];arr.splice(1, 0, 4, 5);console.log(arr);// [1, 4, 5, 2, 3]```第四种方法:concat()concat()方法可以用于将一个或多个数组连接起来,生成一个新数组。
js数组分割方法
js数组分割方法JavaScript数组分割方法是指在JavaScript中对数组的操作,可以用来分割数组,获取数组的部分元素。
JavaScript中的数组的操作有很多,这里主要介绍一些常见的数组分割方法。
1. splice()法splice()法可删除从 index开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
该方法会改变原始数组。
语法:array.splice(start,deleteCount,item1,item2,....) 参数:start:必需,从该位置开始删除元素。
deleteCount:必需,表示要移除的元素个数。
item1, item2, ....:可选,要添加进数组的元素,从 start 位置开始。
例子:let arr = [1,2,3,4,5]arr.splice(1,2) //返回[2,3],原数组变为[1,4,5]arr.splice(1,2,ab //返回[4,5],原数组变为[1,ab2.slice()方法slice()方法用于从某个已有的数组返回选定的元素,不会改变原数组。
该方法提取原数组的一部分并返回新数组,改变的只是数组的内容,而不是数组的大小。
语法:array.slice(start,end)参数:start:可选,规定从何处开始选取。
如果是负值,那么它规定从数组尾部开始算起的位置。
end:可选,规定从何处结束选取。
该参数是数组片断结束处的数组下标。
如果没有指定该参数,那么切分的数组包含从 start数组结尾的所有元素。
如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
例子:let arr = [1,2,3,4,5]arr.slice(1,3) //返回[2,3],原数组不变arr.slice(-3) //返回[3,4,5],原数组不变3.concat()方法concat()方法用于连接两个或多个数组。
该方法不会改变现有的数组,而是返回一个新数组。
javascript中数组比较大小方法
javascript中数组⽐较⼤⼩⽅法javascript中数组取最⼤值和最⼩值1、排序法我们给数组进⾏排序,可以按照从⼩到⼤的顺序来排,排序之后的数组中第⼀个和最后⼀个就是我们想要获取的最⼩值和最⼤值。
排序我们会⽤到数组的 sort ⽅法。
var arr = [12,56,25,5,82,51,22];arr.sort(function (a, b) {return a-b;}); // [5,12,22,25,51,56]var min = arr[0]; // 5var max = arr[arr.length - 1]; // 562.假设法假设当前数组中的第⼀个值是最⼤值,然后拿这个最⼤值和后⾯的项逐⼀⽐较,如果后⾯的某⼀个值⽐假设的值还⼤,说明假设错了,我们把假设的值进⾏替换。
最后得到的结果就是我们想要的。
// 获取最⼤值:var arr = [22,13,6,55,30];var max = arr[0];for(var i = 1; i < arr.length; i++) {var cur = arr[i];cur > max ? max = cur : null}console.log(max); // 55// 获取最⼩值:var arr = [22,13,6,55,30];var min = arr[0];for(var i = 1; i < arr.length; i++) {var cur = arr[i];cur < min ? min = cur : null}console.log(min) // 63. 使⽤ Math 中的 max/min ⽅法可以使⽤apply来实现。
apply传⼊的是⼀个数组。
var arr = [22,13,6,55,30];var max = Math.max.apply(null, arr);var min = Math.min.apply(null, arr);console.log(max, min) // 55,64、使⽤ES6的扩展运算符//ES5 取数组最⼤值console.log(Math.max.apply(this, [654, 233, 727]));//ES6 扩展运算符console.log(Math.max(...[654, 233, 727]))//相当于console.log(Math.max(654, 233, 727))排序对象数组// ⽐较年份var cars = [{type:"Volvo", year:2016},{type:"Saab", year:2001},{type:"BMW", year:2010}];cars.sort(function(a, b){return a.year - b.year});//⽐较字符串cars.sort(function(a, b){var x = a.type.toLowerCase();var y = b.type.toLowerCase();if (x < y) {return -1;}if (x > y) {return 1;}return 0;});以随机顺序排序数组var points = [40, 100, 1, 5, 25, 10];points.sort(function(a, b){return 0.5 - Math.random()});。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组总共有22种方法,本文将其分为对象继承方法、数组转换方法、栈和队列方法、数组排序方法、数组拼接方法、创建子数组方法、数组删改方法、数组位置方法、数组归并方法和数组迭代方法共10类来进行详细介绍对象继承方法数组是一种特殊的对象,继承了对象Object的toString()、toLocaleString()和valueOf()方法【toString()】toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串[注意]该方法的返回值与不使用任何参数调用join()方法返回的字符串相同由于alert()要接收字符串参数,它会在后台调用toString()方法,会得到与toString()方法相同的结果【toLocaleString()】toLocaleString()是toString()方法的本地化版本,它经常也会返回与toString()方法相同的值,但也不总是如此。
因为,它调用元素的是toLocaleString()方法将每个数组元素转化为字符串如果数组中的某一项的值是null或者undefined,则该值在toLocaleString()和toString()方法返回的结果中以空字符串表示【valueOf()】valueOf()方法返回数组对象本身数组转换方法【join()】Array.join()方法是String.split()方法的逆向操作,后者是将字符串分割成若干块来创建一个数组数组继承的toLocaleString()和toString()方法,在默认情况下都会以逗号分隔的字符形式返回数组项;而join()方法可以使用不同的分隔符来构建这个字符串,join()方法只接收一个参数,用作分隔符的字符串,然后返回包含所有数组项的字符串如果不给join()方法传入任何值,则使用逗号作为分隔符若join()方法的参数是undefined,标准浏览器以逗号为分隔符返回字符串,而IE7-浏览器以’undefined’为分隔符返回字符串如果数组中的某一项的值是null或者undefined,则该值在join()方法返回的结果中以空字符串表示该方法也可以用于类数组对象上[注意]若对象没有length属性,就不是类数组,也就不能调用数组的方法栈和队列方法push()和pop()方法允许将数组当作栈来使用。
unshift()和shift()方法的行为非常类似于push()和pop(),不一样的是前者是在数组的头部而非尾部进行元素的插入和删除操作栈是一种LIFO(Last-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。
而栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置——栈的顶部。
javascript为数组专门提供了push()和pop()方法,以便实现类似栈的行为队列数据结构的访问规则是FIFO(first-in-first-out,先进先出)。
队列在列表的末端添加项,从列表的前端移除项。
结合使用shift()和push()方法,可以像使用队列一样使用数组【push()】push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
所以,该数组会改变原数组如果需要合并两个数组,可以使用apply方法[注意]如果使用call方法,则会把数组b整体看成一个参数push()方法也可以向对象中添加元素,添加后的对象变成类数组对象,即新加入元素的键对应数组的索引,并且对象有一个length属性【pop()】pop()方法从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。
所以,该数组会改变原数组对空数组使用pop()方法,不会报错,而是返回undefined【shift()】shift()方法移除数组中的第一个项并返回该项,同时数组的长度减1。
所以,该数组会改变原数组对空数组使用shift()方法,不会报错,而是返回undefined【unshift()】unshift()方法在数组前端添加任意个项并返回新数组长度。
所以,该数组会改变原数组当使用多个参数调用unshift()时,参数是一次性插入的而非一次一个地插入。
这意味着最终的数组中插入的元素的顺序和它们在参数列表中的顺序一致[注意]在IE7-浏览器中,unshift()方法返回的总是undefined数组排序方法数组中存在两个可以直接用来重排序的方法: reverse()和sort()【reverse()】reverse()方法用于反转数组的顺序,返回经过排序之后的数组;而原数组顺序也发生改变【sort()】默认情况下,sort()方法按字符串升序排列数组项,sort方法会调用每个数组项的toString()方法,然后比较得到的字符串排序,返回经过排序之后的数组,而原数组顺序也发生改变如果数组包含undefined元素,它们会被排到数组的尾部sort()方法可以接受一个比较函数作为参数,以便指定哪个值在哪个值的前面。
比较函数接收两个参数,如果第一个参数应该位于第二个参数之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数应该位于第二个参数之后则返回一个正数对于数值类型或valueOf()方法会返回数值类型的对象类型,比较函数可以简化如果对一个字符串数组执行不区分大小写的字母表排序,比较函数首先将参数转化为小写字符串再开始比较【tips】使用sort()方法创建一个随机数组数组拼接方法【concat()】concat()方法基于当前数组中的所有项创建一个新数组,先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。
所以concat()不影响原数组如果不给concat()方法传递参数时,它只是复制当前的数组;如果参数是一个或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中;如果传递的值不是数组,这些值就会被简单地添加到结果数组的末尾如果不提供参数,concat()方法返回当前数组的一个浅拷贝。
所谓“浅拷贝”,指的是如果数组成员包括复合类型的值(比如对象),则新数组拷贝的是该值的引用concat()方法也可以用于将对象合并为数组,但是必须借助call()方法创建子数组方法【slice()】slice()方法基于当前数组中的一个或多个项创建一个新数组,接受一个或两个参数,即要返回项的起始和结束位置,最后返回新数组,所以slice()不影响原数组slice(start,end)方法需要两个参数start和end,返回这个数组中从start位置到(但不包含)end 位置的一个子数组;如果end为undefined或不存在,则返回从start位置到数组结尾的所有项如果start是负数,则start = max(length + start,0)如果end是负数,则end = max(length + end,0)start和end无法交换位置如果没有参数,则返回原数组如果不提供参数,slice()方法返回当前数组的一个浅拷贝slice()方法涉及到Number()转型函数的隐式类型转换,当start被转换为NaN时,相当于start = 0;当end被转换为NaN时(end为undefined除外),则输出空数组可以使用slice()方法将类数组对象变成真正的数组数组删改方法【splice()】splice()和slice()拥有非常相似的名字,但它们的功能却有本质的区别。
splice()方法用于删除原数组的一部分成员,并可以在被删除的位置添加入新的数组成员,该方法会改变原数组splice()返回一个由删除元素组成的数组,或者如果没有删除元素就返回一个空数组splice()的第一个参数start指定了插入或删除的起始位置。
如果start是负数,则start = max(length + start,0);如果start是NaN,则相当于start = 0如果只提供一个元素,相当于将原数组在指定位置拆分成两个数组第二个参数number指定了应该从数组中删除的元素的个数。
如果省略第二个参数,从起始点开始到数组结尾的所有元素都将被删除。
如果number是负数或NaN或undefined,则number=0,因此不删除元素如果后面还有更多的参数,则表示这些就是要被插入数组的新元素数组位置方法ES5为数组实例添加了两个位置方法:indexOf()、lastIndexOf()【indexOf()】indexOf(search,start)方法接收search和start两个参数,返回search首次出现的位置,如果没有找到则返回-1search参数表示要搜索的项;使用严格相等运算符(===)进行比较start参数表示该搜索的开始位置,该方法会隐式调用Number()转型函数,将start非数字值(undefined除外)转换为数字。
若忽略该参数或该参数为undefined或NaN时,start = 0indexOf()方法兼容写法【lastIndexOf()】与indexOf()不同,lastIndexOf()从右向左查找lastIndexOf(search,start)方法接收search和start两个参数,返回search第一次出现的位置,如果没有找到则返回-1search参数表示要搜索的项;使用严格相等运算符(===)进行比较start表示该搜索的开始位置,该方法会隐式调用Number()转型函数,将start非数字值(undefined除外)转换为数。
若忽略该参数或该参数为undefined或NaN时,start = 0与字符串的lastIndexOf()方法不同,当search方法为负数时,search = max(0,length+search)【tips】返回满足条件的项的所有索引值可以通过循环调用indexOf()或lastIndexOf()来找到所有匹配的项lastIndexOf()方法兼容写法数组归并方法数组归并方法包括reduce()和reduceRight()方法两种,它们使用指定的函数将数组元素进行组合,生成单个值。
这在函数式编程中是常见的操作,也可以称为“注入”和“折叠”【reduce()】reduce()方法需要两个参数。
第一个是执行化简操作的函数。
化简函数的任务就是用某种方法把两个值组合或化简为一个值,并返回化简后的值化简函数接受四个参数,分别是:【1】初始变量,默认为数组的第一个元素值。
函数第一次执行后的返回值作为函数第二次执行的初始变量,依次类推【2】当前变量,如果指定了第二个参数,则该变量为数组的第一个元素的值,否则,为第二个元素的值【3】当前变量对应的元素在数组中的索引(从0开始)【4】原数组对象化简函数的这四个参数之中,只有前两个是必须的,后两个则是可选的reduce()方法第二个(可选)的参数是一个传递给函数的初始值[注意]reduce()方法的返回结果类型和传入的初始值相同利用reduce()方法,可以写一个数组求和的sum方法由于reduce方法依次处理每个元素,所以实际上还可以用它来搜索某个元素。