精华内容
下载资源
问答
  • JavaScript数组迭代方法

    2020-10-20 07:14:59
    本文主要介绍了JavaScript数组迭代方法,具有很好的参考价值。下面跟着小编一起来看下吧
  • 主要介绍了JavaScript数组迭代器的用法,涉及javascript数组操作的相关技巧,需要的朋友可以参考下
  • 主要为大家详细介绍了javaScript数组迭代方法,ECMAScript5为数组定义了5个迭代方法,感兴趣的小伙伴们可以参考一下
  • 本文为大家介绍了 javaScript 数组迭代方法供大家参考具体内容如下 每个方法都接收两个参数 要在每一项上运行的函数   和   可选的运行 该函数的作用域对象 传入这些方法中的函数会接收三个参数 数组项的...
  • JavaScript 数组迭代方法JS 数组排序JS 日期数组迭代方法对每个数组项进行操作。Array.forEach()forEach() 方法为每个数组元素调用一次函数(回调函数)。实例var txt = "";var numbers = [45, 4, 9, 16, 25];numbers....

    JavaScript 数组迭代方法

    4073cbf34fa1df5d6fc37103499e824f.png
    • JS 数组排序
    • JS 日期

    数组迭代方法对每个数组项进行操作。

    Array.forEach()

    forEach() 方法为每个数组元素调用一次函数(回调函数)。

    实例

    var txt = "";var numbers = [45, 4, 9, 16, 25];numbers.forEach(myFunction);function myFunction(value, index, array) {  txt = txt + value + "
    "; }

    亲自试一试

    注释:该函数接受 3 个参数:

    • 项目值
    • 项目索引
    • 数组本身

    上面的例子只用了 value 参数。这个例子可以重新写为:

    实例

    var txt = "";var numbers = [45, 4, 9, 16, 25];numbers.forEach(myFunction);function myFunction(value) {  txt = txt + value + "
    "; }

    亲自试一试

    所有浏览器都支持 Array.forEach(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    Array.map()

    map() 方法通过对每个数组元素执行函数来创建新数组。

    map() 方法不会对没有值的数组元素执行函数。

    map() 方法不会更改原始数组。

    这个例子将每个数组值乘以2:

    实例

    var numbers1 = [45, 4, 9, 16, 25];var numbers2 = numbers1.map(myFunction);function myFunction(value, index, array) {  return value * 2;}

    亲自试一试

    请注意,该函数有 3 个参数:

    • 项目值
    • 项目索引
    • 数组本身

    当回调函数仅使用 value 参数时,可以省略索引和数组参数:

    实例

    var numbers1 = [45, 4, 9, 16, 25];var numbers2 = numbers1.map(myFunction);function myFunction(value) {  return value * 2;}

    亲自试一试

    所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    Array.filter()

    filter() 方法创建一个包含通过测试的数组元素的新数组。

    这个例子用值大于 18 的元素创建一个新数组:

    实例

    var numbers = [45, 4, 9, 16, 25];var over18 = numbers.filter(myFunction);function myFunction(value, index, array) {  return value > 18;}

    亲自试一试

    请注意此函数接受 3 个参数:

    • 项目值
    • 项目索引
    • 数组本身

    在上面的例子中,回调函数不使用 index 和 array 参数,因此可以省略它们:

    实例

    var numbers = [45, 4, 9, 16, 25];var over18 = numbers.filter(myFunction);function myFunction(value) {  return value > 18;}

    亲自试一试

    所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    Array.reduce()

    reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

    reduce() 方法在数组中从左到右工作。另请参见 reduceRight()。

    reduce() 方法不会减少原始数组。

    这个例子确定数组中所有数字的总和:

    实例

    var numbers1 = [45, 4, 9, 16, 25];var sum = numbers1.reduce(myFunction);function myFunction(total, value, index, array) {  return total + value;}

    亲自试一试

    请注意此函数接受 4 个参数:

    • 总数(初始值/先前返回的值)
    • 项目值
    • 项目索引
    • 数组本身

    上例并未使用 index 和 array 参数。可以将它改写为:

    实例

    var numbers1 = [45, 4, 9, 16, 25];var sum = numbers1.reduce(myFunction);function myFunction(total, value) {  return total + value;}

    亲自试一试

    reduce() 方法能够接受一个初始值:

    实例

    var numbers1 = [45, 4, 9, 16, 25];var sum = numbers1.reduce(myFunction, 100);function myFunction(total, value) {  return total + value;}

    亲自试一试

    所有浏览器都支持 Array.reduce(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    Array.reduceRight()

    reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

    reduceRight() 方法在数组中从左到右工作。另请参见 reduce()。

    reduceRight() 方法不会减少原始数组。

    这个例子确定数组中所有数字的总和:

    实例

    var numbers1 = [45, 4, 9, 16, 25];var sum = numbers1.reduceRight(myFunction);function myFunction(total, value, index, array) {  return total + value;}

    亲自试一试

    请注意此函数接受 4 个参数:

    • 总数(初始值/先前返回的值)
    • 项目值
    • 项目索引
    • 数组本身

    上例并未使用 index 和 array 参数。可以将它改写为:

    实例

    var numbers1 = [45, 4, 9, 16, 25];var sum = numbers1.reduceRight(myFunction);function myFunction(total, value) {  return total + value;}

    亲自试一试

    所有浏览器都支持 Array.reduceRight(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    Array.every()

    every() 方法检查所有数组值是否通过测试。

    这个例子检查所有数组值是否大于 18:

    实例

    var numbers = [45, 4, 9, 16, 25];var allOver18 = numbers.every(myFunction);function myFunction(value, index, array) {  return value > 18;}

    亲自试一试

    请注意此函数接受 3 个参数:

    • 项目值
    • 项目索引
    • 数组本身

    如果回调函数仅使用第一个参数(值)时,可以省略其他参数:

    实例

    var numbers = [45, 4, 9, 16, 25];var allOver18 = numbers.every(myFunction);function myFunction(value) {  return value > 18;}

    亲自试一试

    所有浏览器都支持 Array.every(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    Array.some()

    some() 方法检查某些数组值是否通过了测试。

    这个例子检查某些数组值是否大于 18:

    实例

    var numbers = [45, 4, 9, 16, 25];var someOver18 = numbers.some(myFunction);function myFunction(value, index, array) {  return value > 18;}

    亲自试一试

    请注意此函数接受 3 个参数:

    • 项目值
    • 项目索引
    • 数组本身

    所有浏览器都支持 Array.some(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    Array.indexOf()

    indexOf() 方法在数组中搜索元素值并返回其位置。

    注释:第一个项目的位置是 0,第二个项目的位置是 1,以此类推。

    实例

    检索数组中的项目 "Apple":

    var fruits = ["Apple", "Orange", "Apple", "Mango"];var a = fruits.indexOf("Apple");

    亲自试一试

    所有浏览器都支持 Array.indexOf(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    语法

    array.indexOf(item, start)

    item 必需。要检索的项目。 start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。

    如果未找到项目,Array.indexOf() 返回 -1。

    如果项目多次出现,则返回第一次出现的位置。

    Array.lastIndexOf()

    Array.lastIndexOf() 与 Array.indexOf() 类似,但是从数组结尾开始搜索。

    实例

    检索数组中的项目 "Apple":

    var fruits = ["Apple", "Orange", "Apple", "Mango"];var a = fruits.lastIndexOf("Apple");

    亲自试一试

    所有浏览器都支持 Array.lastIndexOf(),除了 Internet Explorer 8 或更早的版本:

    Yes 9.0 Yes Yes Yes

    语法

    array.lastIndexOf(item, start)

    item 必需。要检索的项目。 start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到开头。

    Array.find()

    find() 方法返回通过测试函数的第一个数组元素的值。

    这个例子查找(返回)大于 18 的第一个元素的值:

    实例

    var numbers = [4, 9, 16, 25, 29];var first = numbers.find(myFunction);function myFunction(value, index, array) {  return value > 18;}

    亲自试一试

    请注意此函数接受 3 个参数:

    • 项目值
    • 项目索引
    • 数组本身

    老旧的浏览器不支持 Array.find()。下面列出了完全支持此方法的首个浏览器版本:

    45 12 25 8 32

    展开全文
  • JavaScript数组迭代 什么数组迭代 数组迭代是用数组的方法对每个数组项进行操作 数组迭代方法 Array.forEach() //让数组元素都调用一次函数,该函数有3个参数选填分别是项目值,项目索引,数组本身 <script type=...

    JavaScript数组迭代

    什么数组迭代
    数组迭代是用数组的方法对每个数组项进行操作

    数组迭代方法

    • Array.forEach() //让数组元素都调用一次函数,该函数有3个参数选填分别是项目值,项目索引,数组本身
    <script type="text/javascript">
    			var text = "";
    			var numbers = [28,45,67,98,67];	
    			numbers.forEach(myFunction);
    			document.getElementById('demo').innerHTML = text
    			function myFunction(value){
    				text = text + value + "<br>";
    			}
    		</script>
    
    • Array.map() //通过对一个数组进行函数操作后返回一个新数组,它不会改变原来数组,不会操作空元素
    <script type="text/javascript">
    			var numbers = [28,45,67,98,67];	
    			var unmbers2 = numbers.map(myFunction)
    			document.getElementById('demo').innerHTML = unmbers2.toString()	//输出数组字符串
    			function myFunction(value){
    				return value*2	//将原来数组元素值*2
    			}
    		</script>
    
    • Array.filter() //filter是过滤的意思,所以通过函数设定的条件返回一个新数组
    <script type="text/javascript">
    			var numbers = [28,45,67,98,67];	
    			var unmbers2 = numbers.filter(myFunction)
    			document.getElementById('demo').innerHTML = unmbers2.toString()	//输出数组字符串
    			function myFunction(value){
    				return value > 45	//将原来数组元素值大于45的过滤后返回新数组
    			}
    		</script>
    
    • Array.reduce() //相当于求数组里的全部元素的和,4个参数,总数,项目值,项目索引,数组本身
    var numbers = [28,45,67,98,67];	
    			var unmbers2 = numbers.reduce(myFunction)
    			document.getElementById('demo').innerHTML = unmbers2	//返回305
    			function myFunction(total,value){
    				return total + value	//将数组的元素求和后返回一个值
    			}
    		</script>
    
    • Array.every() //判断数组的每个元素是否通过测试并返回布尔值
    <script type="text/javascript">
    			var numbers = [1,2,3,4,5];	
    			var unmbers2 = numbers.every(myFunction)
    			document.getElementById('demo').innerHTML = unmbers2	//输出false
    			function myFunction(value){
    				return value > 2	//判断数组的所有元素是否都大于2
    			}
    		</script>
    
    • Array.some() //判断数组中是否存在某些满足条件的元素
    <script type="text/javascript">
    			var numbers = [1,2,3,4,5];	
    			var unmbers2 = numbers.some(myFunction)
    			document.getElementById('demo').innerHTML = unmbers2	//输出true
    			function myFunction(value){
    				return value > 2	//判断数组的所有元素是否都大于2
    			}
    		</script>
    
    • Array.indexOf() //返回元素在数组中的索引位置,括号里面填具体元素(如果没有此元素就返回-1),允许有第二个参数(star)
    • Array.lastIndexOf() //从结尾开始检索,结尾为0,依次检索
    • Array.find() //返回通过测试的第一个元素
    <script type="text/javascript">
    			var numbers = [1,2,3,4,5];	
    			var unmbers2 = numbers.find(myFunction)
    			document.getElementById('demo').innerHTML = unmbers2	//输出3
    			function myFunction(value){
    				return value > 2	//返回第一个大于2的元素
    			}
    		</script>
    
    • Array.findIndex() //返回通过测试的第一个元素的索引值

    Java时间和日期

    Java有专门处理时间日期的类,他们都是final类

    • LocalDate
    • LocalDateTime
    • LocalTime

    关于LocalDate类
    封装的是年 月 日

            LocalDate date = LocalDate.now();	//返回当前的时间(用类名直接调用方法)
    
    • int getDayOfMonth() //返回当前月中的日
    • int gerMonthValue() //返回月的整数值
    • Month getMonth() //返回月的枚举值,因为Month是枚举类型
    • int getDayOfYear //返回当前年的第几日
    • DayOfWeek getDayOfWeek() //返回当前日期是星期几,以为DayOfWeek是枚举类型
    • int getYear() //返回年值
    • int lengthOfYear() //返回年的长度
    • int lengthOfMonth() //返回月的长度
    • boolean isLeapYear() //判断是否为闰年
    • LocalDate plusMonths(long monthsToAdd) //返回参数所增加月份的日期,同样有plusDays,plusYears
    • LocalDate of(year,month,day) //自定义日期

    关于LocalDateTime类
    封装了年月日时分秒

           LocalDateTime dateTime = LocalDateTime.now();	//返回当前年月日时分秒
    
    • int getHour()/getMinute()/getSecond()/getNano() //分别是返回时分秒和纳秒
    • LocalDateTime of(year,month,day,hour,minute,second,nano) //自定义日期和时间

    关于LocalTime类
    只封装了时间数据(时分秒和纳秒)

            LocalTime time = LocalTime.now();	//返回当前时间
    

    关于日期和时间差,还有日历
    LocalDate类,LocalDateTime类和LocalTime类都提供了计算时间差的方法

    • long until(Temporal endExclusive,TemporalUnit unit) //返回long类型,Temporal是一个接口,ChronoUnit实现了TemporalUnit接口,提供许多枚举常量
    • YEARS,MONTHS,DAYS,MINUTES,SECONDS,NANOS,WEEKS //ChronoUnit的枚举常量
            starDate.until(date, ChronoUnit.DAYS);  //返回starDate到date之间的天数
    

    日历的制作实例

    package Calender;
    
    import java.time.DayOfWeek;
    import java.time.LocalDate;
    
    public class GiveCalender { //创建一个日历的类,用来获取是月份
        public LocalDate[] giveCalender(LocalDate date){    //用于的存放那一日是哪一月份
            date = date.withDayOfMonth(1);  //修改那一日为一号;
            int day = date.lengthOfMonth(); //获取那一天的那个月有多少日
            LocalDate dateArray[] = new LocalDate[day]; //创建那个月为一个数组
            for (int i = 0; i <day ; i++) {
                dateArray[i] = date.plusDays(i);    //将那个月的每一个存放到数组中
            }
            return dateArray;
        }
    }
    
    package Calender;
    
    import jdk.dynalink.beans.StaticClass;
    
    import java.time.DayOfWeek;
    import java.time.LocalDate;
    
    public class Application {
        public static void main(String[] args) {
            LocalDate date = LocalDate.now();   //创建一个日期对象
            GiveCalender giveCalender = new GiveCalender(); //创建获取月份的对象
            LocalDate dateArray  [] =giveCalender.giveCalender(date);   //将月份实体化
            printNameHead(date);
            for (int i = 0; i <dateArray.length ; i++) {
                if (i==0){  //确定一号是星期几然后输出多少个空格
                    printSpace(dateArray[i].getDayOfWeek());
                    System.out.printf("%4d",dateArray[i].getDayOfMonth());
                }
                else{
                    System.out.printf("%4d",dateArray[i].getDayOfMonth());
                }
                if(dateArray[i].getDayOfWeek() == DayOfWeek.SATURDAY){  //如果那一天是星期六的话就换行
                    System.out.println();
                }
            }
    
        }
        public static void printSpace(DayOfWeek x){ //根据1号是星期几输出多少空格的方法
            switch(x){
                case SUNDAY:printSpace(0);
                break;
                case MONDAY:printSpace(1);
                break;
                case TUESDAY:printSpace(2);
                break;
                case WEDNESDAY:printSpace(3);
                break;
                case THURSDAY:printSpace(4);
                break;
                case FRIDAY:printSpace(5);
                break;
                case SATURDAY:printSpace(6);
            }
        }
        public static void printSpace(int n){   //属于方法重载    一次输出多少个空格
            for (int i = 0; i <n; i++) {
                System.out.printf("%4s","");
            }
        }
        public static void printNameHead(LocalDate date){  //定义一个静态方法,在主类中调用,不能再主类中定义方法
            System.out.println(date.getYear()+"年"+date.getMonthValue()+"月的日历:");
            System.out.printf("%1s","");
            String name[] = {"日","一","二","三","四","五","六"};  //创建数组
            for (int i = 0; i <name.length ; i++) {
                System.out.printf("%3s",name[i]); //不换行输出
            }
            System.out.println();
        }
    }
    

    运行结果

    D:\HelloWorld\out\production\HelloJava Calender.Application
    20204月的日历:
       日  一  二   三  四  五  六
                   1   2   3   4
       5   6   7   8   9  10  11
      12  13  14  15  16  17  18
      19  20  21  22  23  24  25
      26  27  28  29  30
    进程已结束,退出代码 0
    

    计算机中数据表示及运算

    计算机中数据表示

    1.数制及其转换
    什么是进位进位计数制? 进位计数制就是按进位的方法进行计数,在进位计数制中,如果用r个基本字符来表示数值,那么就称为r进制.

    • 基数(K):最大进位数(也就是进制数)
    • 系数(m):每个位上的值(也就是把小数点左边作为0开始数起)
    • 位数(n):各进制数的位数(有多少个数字,就是多少位数)

    r进制转换成十进制(D)

    公式就是当前的在哪个位上的系数*r进制的(当前在哪个位置)次方+++

    • 二进制(B)
      10101(B) = 1*(2的4次方)+0*(2的3次方)+1*(2的2次方)+0*(2的1次方)+1*(2的0次方) =21

    • 八进制(O)

    • 十进制(D)

    • 十六进制(H)

    十进制转成r进制

    • 整数部分: 除以r后取余,然后继续除以r,直到商为0,然后将所有的余数从右往左排列
    • 小数部分: 乘以r后取整,整数从左往右排列

    八进制(O)和十六进制(H)转换成二进制(B)

    • 每个八进制对应二进制的3位 //144(O) = 001 100 100
    • 每个十六进制对应二进制的4位 //64(H) = 0110 0100

    二进制(B)转八进制(O)和十六进制(H)

    • 整数部分从右往左分组
    • 小数部分从左往右分组
    • 八进制3个数字为一组,不足就补0
    • 十六进制4个数字为一组,不足就补0

    二进制的运算规则

    • 加法: 1+1 =0 (有进位)
    • 减法: 0-1 =1(因为不够减,所以借1,当2)
    • 乘法:正常乘
    • 除法:乘法的逆运算

    机器数和码制
    什么是机器数?就是数据在计算机中的表现形式成为机器数,其采用的是二进制数,分为带符号和不带符号,0表示正数,1表示负数,通常符号位都是在二进制的最高位
    什么是码制?码制就是为了方便机器数的运算,将带符号就机器数采用不同的编码方法,有以下4种,通常符号位都是在二进制的最高位

    1. 原码
    2. 反码 //正数和原码相同,负数除了符号位其他的数按位取反
    3. 补码 //正数和原码相同,负数除了符号位其他数按位取反后加1
    4. 移码 //1表示为正数,0表示为负数

    CET4P154

    urge
    evolution
    extraordinary
    satellite
    publication
    debt
    trim
    urgent
    myth
    mud
    relate
    qualification

    展开全文
  • 数组迭代方法对每个数组项进行操作。 Array.forEach() forEach() 方法为每个数组元素调用一次函数(回调函数)。 实例: var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function ...

    数组迭代方法对每个数组项进行操作。

    Array.forEach()

    forEach() 方法为每个数组元素调用一次函数(回调函数)。
    实例:

    var txt = "";
    var numbers = [45, 4, 9, 16, 25];
    numbers.forEach(myFunction);
    
    function myFunction(value, index, array) {
      txt = txt + value + "<br>"; 
    }
    

    注释:该函数接受 3 个参数:

    1. 项目值
    2. 项目索引
    3. 数组本身

    Array.map()

    map() 方法通过对每个数组元素执行函数来创建新数组。该方法不会对没有值的数组元素执行函数。该方法不会更改原始数组。这个例子将每个数组值乘以2:
    实例:

    var numbers1 = [45, 4, 9, 16, 25];
    var numbers2 = numbers1.map(myFunction);
    
    function myFunction(value, index, array) {
      return value * 2;
    }
    

    请注意,该函数有 3 个参数:

    1. 项目值
    2. 项目索引
    3. 数组本身

    Array.filter()

    filter() 方法创建一个包含通过测试的数组元素的新数组。这个例子用值大于 18 的元素创建一个新数组:
    实例:

    var numbers = [45, 4, 9, 16, 25];
    var over18 = numbers.filter(myFunction);
    
    function myFunction(value, index, array) {
      return value > 18;
    }
    

    请注意此函数接受 3 个参数:

    1. 项目值
    2. 项目索引
    3. 数组本身

    Array.reduce()

    reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。该方法在数组中从左到右工作。另请参见 reduceRight()。reduce() 方法不会减少原始数组。这个例子确定数组中所有数字的总和:
    实例:

    var numbers1 = [45, 4, 9, 16, 25];
    var sum = numbers1.reduce(myFunction);  //  99
    
    function myFunction(total, value, index, array) {
      return total + value;
    }
    

    请注意此函数接受 4 个参数:

    1. 总数(初始值/先前返回的值)
    2. 项目值
    3. 项目索引
    4. 数组本身

    reduce() 方法能够接受一个初始值:
    实例:

    var numbers1 = [45, 4, 9, 16, 25];
    var sum = numbers1.reduce(myFunction, 100); // 199 
    
    function myFunction(total, value) {
      return total + value;
    }
    

    Array.reduceRight()

    reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。reduceRight() 方法在数组中从左到右工作。另请参见 reduce()。reduceRight() 方法不会减少原始数组。这个例子确定数组中所有数字的总和:
    实例:

    var numbers1 = [45, 4, 9, 16, 25];
    var sum = numbers1.reduceRight(myFunction);
    
    function myFunction(total, value, index, array) {
      return total + value;
    }
    

    请注意此函数接受 4 个参数:

    1. 总数(初始值/先前返回的值)
    2. 项目值
    3. 项目索引
    4. 数组本身

    Array.every()

    every() 方法检查所有数组值是否通过测试。这个例子检查所有数组值是否大于 18:
    实例:

    var numbers = [45, 4, 9, 16, 25];
    var allOver18 = numbers.every(myFunction);
    
    function myFunction(value, index, array) {
      return value > 18;
    }
    

    请注意此函数接受 3 个参数:

    1. 项目值
    2. 项目索引
    3. 数组本身

    Array.some()

    some() 方法检查某些数组值是否通过了测试。这个例子检查某些数组值是否大于 18:
    实例:

    var numbers = [45, 4, 9, 16, 25];
    var someOver18 = numbers.some(myFunction);
    
    function myFunction(value, index, array) {
      return value > 18;
    }
    

    请注意此函数接受 3 个参数:

    1. 项目值
    2. 项目索引
    3. 数组本身

    Array.indexOf()

    indexOf() 方法在数组中搜索元素值并返回其位置。
    注释:第一个项目的位置是 0,第二个项目的位置是 1,以此类推。
    实例:
    检索数组中的项目 “Apple”:

    var fruits = ["Apple", "Orange", "Apple", "Mango"];
    var a = fruits.indexOf("Apple");
    

    语法:

    array.indexOf(item, start)
    item 必需。要检索的项目。
    start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。
    如果未找到项目,Array.indexOf() 返回 -1。
    如果项目多次出现,则返回第一次出现的位置。

    Array.lastIndexOf()

    Array.lastIndexOf() 与 Array.indexOf() 类似,但是从数组结尾开始搜索。
    实例:
    检索数组中的项目 “Apple”:

    var fruits = ["Apple", "Orange", "Apple", "Mango"];
    var a = fruits.lastIndexOf("Apple");
    

    语法:
    array.lastIndexOf(item, start)
    item 必需。要检索的项目。
    start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到开头。

    Array.find()

    find() 方法返回通过测试函数的第一个数组元素的值。这个例子查找(返回)大于 18 的第一个元素的值:
    实例:

    var numbers = [4, 9, 16, 25, 29];
    var first = numbers.find(myFunction);
    
    function myFunction(value, index, array) {
      return value > 18;
    }
    

    请注意此函数接受 3 个参数:

    1. 项目值
    2. 项目索引
    3. 数组本身

    Array.findIndex()

    findIndex() 方法返回通过测试函数的第一个数组元素的索引。这个例子查找大于 18 的第一个元素的索引:
    实例:

    var numbers = [4, 9, 16, 25, 29];
    var first = numbers.findIndex(myFunction);
    
    function myFunction(value, index, array) {
      return value > 18;
    }
    

    请注意此函数接受 3 个参数:

    1. 项目值
    2. 项目索引
    3. 数组本身
    展开全文
  • 数组迭代方法对每个数组项进行操作 一、forEach()方法为每个数组元素调用一次函数(回调函数) 例: var txt = “”; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction...

    数组迭代方法对每个数组项进行操作
    一、forEach()方法为每个数组元素调用一次函数(回调函数)forEach是循环遍历一遍数组的每一项,这个是没有返回值的,这个方法里面有个回调函数,回调函数有三个参数,第一个是数组每一项的值value,第二个参数是数组每一项对应的下标索引index,array是数组本身。
    例:
    var txt = “”;
    var numbers = [45, 4, 9, 16, 25];
    numbers.forEach(myFunction);
    function myFunction(value, index, array) {
    txt = txt + value + “
    ”;
    }
    上面的例子只用了 value 参数。这个例子可以重新写为:
    var txt = “”;
    var numbers = [45, 4, 9, 16, 25];
    numbers.forEach(myFunction);
    function myFunction(value) {
    txt = txt + value + “
    ”;
    }
    所有浏览器都支持forEach()方法,除了IE8或更早的版本
    二、map()方法通过对每个数组元素执行函数来创建新数组,不会对没有值的数组元素执行函数,不会更改原始数组。
    例(将每个数组值乘以2):
    var numbers1 = [45, 4, 9, 16, 25];
    var numbers2 = numbers1.map(myFunction);
    function myFunction(value, index, array) {
    return value * 2;
    }
    如果只需要数组的值,可以省略index、array
    所有浏览器都支持map()方法,除了IE8或更早的版本
    三、filter() 方法创建一个包含通过测试的数组元素的新数组。filter是过滤、筛选的意思。
    例(用值大于 18 的元素创建一个新数组):
    var numbers = [45, 4, 9, 16, 25];
    var over18 = numbers.filter(myFunction);
    function myFunction(value, index, array) {
    return value > 18;
    }
    //45,25
    同样的,如果只需要数组的值,可以省略index、array
    所有浏览器都支持filter()方法,除了IE8或更早的版本
    四、reduce()方法在每个数组元素上运行函数,以生成(减少它)单个值,在数组中从左到右工作,不会减少原始数组。
    例(确定数组中所有数字的总和):
    var numbers1 = [45, 4, 9, 16, 25];
    var sum = numbers1.reduce(myFunction);
    function myFunction(total, value, index, array) {
    return total + value;
    }//总和是 99
    请注意此函数接受 4 个参数:
    total总数(初始值/先前返回的值)
    value项目值
    index项目索引
    array数组本身
    上例并未使用 index 和 array 参数,可以将它去掉。
    reduce() 方法能够接受一个初始值
    例:
    var numbers1 = [45, 4, 9, 16, 25];
    var sum = numbers1.reduce(myFunction, 100);
    function myFunction(total, value) {
    return total + value;
    }//总和是 199
    所有浏览器都支持 reduce()方法,除了 IE8 或更早的版本
    五、reduceRight()方法在每个数组元素上运行函数,以生成(减少它)单个值,数组中从右向左工作,不会减少原始数组。
    与reduce()方法类似。
    所有浏览器都支持 reduceRight()方法,除了 IE8 或更早的版本
    六、every()方法检查所有数组值是否通过测试。
    例(检查所有数组值是否大于 18):
    var numbers = [45, 4, 9, 16, 25];
    var allOver18 = numbers.every(myFunction);
    function myFunction(value, index, array) {
    return value > 18;
    }//false
    三个参数,仅调用第一个,其他两个可以省略。
    所有浏览器都支持every()方法,除了IE8或更早版本
    七、some()方法检查某些数组值是否通过了测试。
    例(检查某些数组值是否大于 18):
    var numbers = [45, 4, 9, 16, 25];
    var someOver18 = numbers.some(myFunction);
    function myFunction(value, index, array) {
    return value > 18;
    }//true
    三个参数,仅调用第一个,其他两个可以省略。
    所有浏览器都支持some()方法,除了IE8或更早版本
    八、indexOf()方法在数组中搜索元素值并返回其位置。
    **注:**第一个项目的位置是 0,第二个项目的位置是 1,以此类推。
    例(检索数组中的项目“Apple”):
    var fruits = [“Apple”, “Orange”, “Apple”, “Mango”];
    var a = fruits.indexOf(“Apple”);
    语法:
    array.indexOf(item, start)
    item 必需。要检索的项目。
    start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。
    如果未找到项目,Array.indexOf() 返回 -1。
    如果项目多次出现,则返回第一次出现的位置。
    所有浏览器都支持indexOf()方法,除了IE8或更早版本
    九、lastIndexOf()方法与indexOf() 类似,但是从数组结尾开始搜索。
    例(检索数组中的项目“Apple”):
    var fruits = [“Apple”, “Orange”, “Apple”, “Mango”];
    var a = fruits.lastIndexOf(“Apple”);
    //2
    所有浏览器都支持lastIndexOf()方法,除了IE8或更早版本
    语法和indexOf()类似,star是从结尾开始的给定位置开始,并搜索到开头。
    十、find()方法返回通过测试函数的第一个数组元素的值。
    例(查找(返回)大于18的第一个元素的值):
    var numbers = [4, 9, 16, 25, 29];
    var first = numbers.find(myFunction);
    function myFunction(value, index, array) {
    return value > 18;
    }//25
    三个参数,仅调用第一个,其他两个可以省略。
    老旧的浏览器都不支持fine()方法,完全支持此方法的首个浏览器版本:
    在这里插入图片描述
    十一、findIndex()方法返回通过测试函数的第一个数组元素的索引。
    例(查找大于 18 的第一个元素的索引):
    var numbers = [4, 9, 16, 25, 29];
    var first = numbers.findIndex(myFunction);
    function myFunction(value, index, array) {
    return value > 18;
    }//3
    三个参数,仅调用第一个,其他两个可以省略。
    老旧的浏览器都不支持fineIndex()方法,完全支持此方法的首个浏览器版本:
    在这里插入图片描述
    W3School JavaScript

    展开全文
  • JavaScript中操作数组,可以使用for、while循环,也可以使用数组数组迭代方法,更方便地完成。 1. forEach forEach()方法没有返回值,运行时为每个数组元素调用一次回调函数。 arr.forEach(callback, [thisArg]); ...
  • Array.reduce()reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。reduce() 方法在数组中从左到右工作。另请参见 reduceRight()。reduce() 方法不会减少原始数组。这个例子确定数组中所有数字的总和:...
  • ES5和ES6中新增的的数组迭代方法如下: forEach map filter some every reduce / reduceRight find / findIndex 其中,find / findIndex是ES6新增的,其余都是ES5新增的。...
  •  解释:map即映射,返回对每项操作后组成的新数组 let arr=[1,2,3,4,5,6,7,8]; let newArr=arr.map((item)=>{ if(item>2){ return item*2; }else{ return null; } }); conso...
  • 027-JavaScript数组迭代

    2020-11-09 09:13:57
    1.2. forEach()方法调用函数接受3个参数, 按顺序依次是: 项目值、项目索引、数组本身。如果没有需要, 还可以省略后面2个参数。 1.3. 实例 1.3.1. 代码 <!DOCTYPE html> <html> <head> <...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,191
精华内容 476
关键字:

javascript数组迭代

java 订阅