精华内容
下载资源
问答
  • js循环遍历数组

    2019-12-13 15:57:53
    1.for循环 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。 1 2 3 for(j = 0,len=arr.length; j < len; j++) { } 2....

    1.for循环

    使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。

    1

    2

    3

    for(j = 0,len=arr.length; j < len; j++) {

        

    }

     

    2.foreach循环

    遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE

    1

    2

    3

    4

    5

    6

    //1 没有返回值

    arr.forEach((item,index,array)=>{

        //执行代码

    })

    //参数:value数组中的当前项, index当前项的索引, array原始数组;

    //数组中有几项,那么传递进去的匿名回调函数就需要执行几次;

     

    3.map循环

    有返回值,可以return出来

    map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);

    1

    2

    3

    4

    5

    6

    7

    arr.map(function(value,index,array){

     

      //do something

     

      return XXX

     

    })

    1

    2

    3

    4

    5

    6

    var ary = [12,23,24,42,1]; 

    var res = ary.map(function (item,index,ary ) { 

        return item*10; 

    }) 

    console.log(res);//-->[120,230,240,420,10];  原数组拷贝了一份,并进行了修改

    console.log(ary);//-->[12,23,24,42,1];  原数组并未发生变化

     

    4.forof遍历

    可以正确响应break、continue和return语句

    1

    2

    3

    for (var value of myArray) {

    console.log(value);

    }

      

    5.filter遍历

    不会改变原始数组,返回新数组

    1

    2

    3

    4

    5

    var arr = [

      { id: 1, text: 'aa', done: true },

      { id: 2, text: 'bb', done: false }

    ]

    console.log(arr.filter(item => item.done))

    转为ES5

    1

    2

    3

    arr.filter(function (item) {

      return item.done;

    });

    1

    2

    3

    var arr = [73,84,56, 22,100]

    var newArr = arr.filter(item => item>80)   //得到新数组 [84, 100]

    console.log(newArr,arr)

      

    6.every遍历

    every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。

    1

    2

    3

    4

    5

    var arr = [ 1, 2, 3, 4, 5, 6 ]; 

    console.log( arr.every( function( item, index, array ){ 

            return item > 3; 

        })); 

    false

     

    7.some遍历

    some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

    1

    2

    3

    4

    5

    6

    var arr = [ 1, 2, 3, 4, 5, 6 ]; 

       

        console.log( arr.some( function( item, index, array ){ 

            return item > 3; 

        })); 

    true

      

    8.reduce

    reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。

    1

    var total = [0,1,2,3,4].reduce((a, b)=>a + b); //10

    reduce接受一个函数,函数有四个参数,分别是:上一次的值,当前值,当前值的索引,数组

    1

    2

    3

    [0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array){

     return previousValue + currentValue;

    });

    reduce还有第二个参数,我们可以把这个参数作为第一次调用callback时的第一个参数,上面这个例子因为没有第二个参数,所以直接从数组的第二项开始,如果我们给了第二个参数为5,那么结果就是这样的:

    1

    2

    3

    [0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array){

     return previousValue + currentValue;

    },5);

     

    第一次调用的previousValue的值就用传入的第二个参数代替,

    9.reduceRight

    reduceRight()方法的功能和reduce()功能是一样的,不同的是reduceRight()从数组的末尾向前将数组中的数组项做累加。

    reduceRight()首次调用回调函数callbackfn时,prevValue 和 curValue 可以是两个值之一。如果调用 reduceRight() 时提供了 initialValue 参数,则 prevValue 等于 initialValuecurValue 等于数组中的最后一个值。如果没有提供 initialValue 参数,则 prevValue 等于数组最后一个值, curValue 等于数组中倒数第二个值。

    1

    2

    3

    4

    5

    var arr = [0,1,2,3,4];

     

    arr.reduceRight(function (preValue,curValue,index,array) {

        return preValue + curValue;

    }); // 10

    回调将会被调用四次,每次调用的参数及返回值如下:

    如果提供一个初始值initialValue5:

    1

    2

    3

    4

    5

    var arr = [0,1,2,3,4];

     

    arr.reduceRight(function (preValue,curValue,index,array) {

        return preValue + curValue;

    }, 5); // 15

    回调将会被调用五次,每次调用的参数及返回的值如下:

    同样的,可以对一个数组求和,也可以使用reduceRight()方法:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    var arr = [1,2,3,4,5,6];

     

    console.time("ruduceRight");

    Array.prototype.ruduceRightSum = function (){

        for (var i = 0; i < 10000; i++) {

            return  this.reduceRight (function (preValue, curValue) {

                return preValue + curValue;

            });

        }

    }

    arr.ruduceRightSum();

    console.log('最终的值:' + arr.ruduceSum()); // 21

    console.timeEnd("ruduceRight"); // 5.725ms

    10.find

    find()方法返回数组中符合测试函数条件的第一个元素。否则返回undefined 

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    var stu = [

        {

            name: '张三',

            gender: '男',

            age: 20

        },

        {

            name: '王小毛',

            gender: '男',

            age: 20

        },

        {

            name: '李四',

            gender: '男',

            age: 20

        }

    ]

    1

    2

    3

    4

    5

    6

    7

    function getStu(element){

       return element.name == '李四'

    }

     

    stu.find(getStu)

    //返回结果为

    //{name: "李四", gender: "男", age: 20}

    ES6方法

    1

    stu.find((element) => (element.name == '李四'))

     

    11.findIndex

    对于数组中的每个元素,findIndex 方法都会调用一次回调函数(采用升序索引顺序),直到有元素返回 true。只要有一个元素返回 true,findIndex 立即返回该返回 true 的元素的索引值。如果数组中没有任何元素返回 true,则 findIndex 返回 -1。

    findIndex 不会改变数组对象。

    1

    2

    [1,2,3].findIndex(function(x) { x == 2; });

    // Returns an index value of 1.

    1

    2

    [1,2,3].findIndex(x => x == 4);

    // Returns an index value of -1.

    12.keys,values,entries

     ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    for (let index of ['a', 'b'].keys()) {

    console.log(index);

    }

    // 0

    // 1

    for (let elem of ['a', 'b'].values()) {

    console.log(elem);

    }

    // 'a'

    // 'b'

    for (let [index, elem] of ['a', 'b'].entries()) {

    console.log(index, elem);

    }

    // 0 "a"

    // 1 "b"

    展开全文
  • 遍历数组求和、查找

    2021-08-08 20:34:35
    * 循环输出数列的值 * 8,4,2,1,23,344,12 * 求数列中所有数值的和 * 从键盘中输入一个数据,判断数列中是否包含此数 * @author Administrator */ public class Test1 { public static void main(String[] ...
    import java.util.Scanner;
    
    /**
     * 循环输出数列的值
     * 8,4,2,1,23,344,12
     * 求数列中所有数值的和
     * 从键盘中输入一个数据,判断数列中是否包含此数
     * @author Administrator
     */
    public class Test1 {
    	public static void main(String[] args) {
    		/*声明变量*/
    		int sum=0;//求和
    		int index=-1;//	元素下标位置	
    		int[] arr= {8,4,2,1,23,344,12};//数组
    		
    		/*遍历数组,将数组中的数据打印出来并求和*/
    		for (int i=0;i<arr.length ;i++) {
    			System.out.print(arr[i]+"\t");	
    			sum+=arr[i];
    		}
    		
    		System.out.println("\n和为:"+sum);
    		System.out.print("请输入一个数字:");
    		//扫描器
    		Scanner input =new Scanner(System.in);
    		//接收输入数据
    		int num=input.nextInt();
    		/*
    		 *遍历数组 */
    		for (int i=0;i<arr.length ;i++) {
    			/*判断输入的数据是否存在在数组中*/
    			if (num==arr[i]) {
    				index=i;
    			    break;
    			}			
    		}
    		if (index!=-1) {  //判断,如果index!=-1,数据存在
    			System.out.print("输入的数据在该数组中");
    		}else {
    			System.out.print("输入的数据不在该数组中");
    		}		
    	}
    }
    

    展开全文
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">...遍历、冒泡排序</title> <script> //==================================...
    	<!DOCTYPE html>
    	<html lang="en">
    	<head>
    	    <meta charset="UTF-8">
    	    <title>遍历、冒泡排序</title>
    	    <script>
    	        //================================================遍历=======================================================
    	
    	        //遍历:得到每一个元素的值   正序
    	        var arr = [10, 20, 30, 40, 50];
    	        for (i = 0; i < arr.length; i++) {
    	            console.log(arr[i]);
    	        }
    	
    	        //==============================================例子(冒泡排序)(倒序)================================================
    	
    	        //例子1:求数组中所有元素的和,
    	        var arr1 = [10, 20, 30, 40, 50];
    	        var sum = 0;
    	        for (i = 0; i < arr1.length; i++) {
    	            sum += arr1[i];
    	        }
    	        console.log(sum);
    	
    	        //求数组中所有数组元素的平均值,最大值,最小值,循环遍历数组
    	        var arr2 = [1, 2, 3, 4, 5];
    	        var sum = 0;
    	        for (i = 0; i < arr2.length; i++) {
    	            sum += arr2[i];
    	        }
    	        console.log(sum / arr2.length);
    	
    	        //求数组中所有数组元素的最大值,最小值
    	        var arr3 = [1, 2, 3, 4, 10];
    	        //假设rr3[0]得值最大
    	        // var max = arr3[0];
    	        var max =Number.MIN_VALUE;   //和上一句效果一样,假设变量的值是最大值的意思
    	        for (i = 0; i < arr3.length; i++) {
    	            if (max<arr3[i]) {
    	                max = arr3[i];
    	            }
    	        }
    	        console.log(max);
    	        //倒序循环遍历数组   倒序
    	        var arr4=[10,20,30,40,50];
    	        for (var i=arr4.length-1;i>=0;i--){
    	            console.log(arr4[i]);
    	        }
    	        //把数组中所有的数组元素用|拼接一起形成一个字符串显示出来
    	        var names=["哈哈","苏苏","嘎嘎","嗯哼","噢霍","呜呜","嘻嘻"];
    	        var str="";
    	        for (var i=0;i<names.length-1;i++){
    	            str+=names[i]+"|";
    	        }
    	        console.log(str+names[names.length-1]);
    	
    	        //去掉数组中重复的
    	        var arr5=[1,2,3,4,0,0,2,2,0];
    	        var newArr=[];  //创建一个新数组,用来存放第一个非0的数据
    	        for (var i=0;i<arr5.length;i++){
    	            if (arr5[i]!=0) {
    	                newArr[newArr.length]=arr5[i];   //新数组的长度用来做下标索引,是可以改变的
    	            }
    	        }
    	        console.log(newArr);
    	
    	        //反转数组:把数组中数据的位置调换    和倒序有点类似
    	        var arr6=[1,2,3,4,5,];
    	        //循环的目的是控制交换的次数
    	        for (var i=0;i<arr6.length/2;i++) {
    	            var temp=arr6[i];   //先把第一个元素的值放在第三变量当中
    	            arr6[i]=arr6[arr.length-1-i];
    	            arr6[arr.length-1-i]=temp;
    	        }
    	        console.log(arr6);
    	
    	        //提示用户输入班级总人数,求总成绩,平均成绩,最高分,最低分
    	        //提示用户输入人数,并转成数字类型
    	        var perCount=parseInt(prompt("请输入班级人数"));
    	        //定义数组存储每个人的成绩
    	        var scores=[];
    	        for (i=0;i<perCount;i++) {
    	            scores[scores.length]=parseInt(prompt("请输入第"+(i+1)+"个人成绩"));
    	        }
    	        console.log(scores);
    	        //求总成绩 平均值
    	        var sum = 0;   //总成绩
    	        var avg=0;      //平均值
    	        var max=scores[0];  //最大值
    	        var min=scores[0];  //最小值
    	        for (var i=0;i<scores.length;i++){
    	            sum+=scores[i];    //求和
    	            if(max<scores[i]){
    	                max=scores[i];
    	            }
    	            if(min>scores[i]){
    	                min=scores[i];
    	            }
    	        }
    	        avg=sum/scores.length;
    	        console.log(sum);
    	        console.log(avg);
    	        console.log(max);
    	        console.log(min);
    	        //冒号排序:指把所有的数据按照一定的顺序进行排序,(从小到答,从大到小)
    	
    	        var arr7 = [10, 0, 100, 20, 60, 30];
    	        //循环控制比较的轮数
    	        for (var i = 0; i < arr7.length - 1; i++) {
    	            //控制每一轮的比较的次数
    	            for (var j = 0; j < ar7r.length - 1 - i; j++) {
    	                if (arr7[j] < arr7[j + 1]) {
    	                    var temp = arr7[j];
    	                    arr7[j] = arr7[j + 1];
    	                    arr7[j + 1] = temp;
    	                }
    	            }
    	        }
    	        console.log(arr7);
    	
    	
    	    </script>
    	</head>
    	<body>
    	
    	</body>
    	</html>
    
    展开全文
  • js遍历数组 循环json数组

    万次阅读 多人点赞 2016-10-13 15:37:51
    JS数组遍历方法有两种: 一:一般的for循环,例如: 1 2 3 4 var a = new Array("first", "second", "third") for(var i = 0;i < a.length; i++) { document.write(a[i]...

    JS数组的遍历方法有两种:

    一:一般的for循环,例如:

    1

    2

    3

    4

    var a = new Array("first", "second", "third")

    for(var i = 0;i < a.length; i++) {

    document.write(a[i]+",");

    }

    输出的结果:fitst,second,third

    二:用for...in 这种遍历的方式,例如:

    1

    2

    3

    4

    var arr = new Array("first", "second", "third")

    for(var item in arr) {

    document.write(arr[item]+",");

    }

    输出的结果:fitst,second,third

     

    jQuery 遍历json数组的实现代码

    一、使用each遍历

      var obj = [{ "name": "张三丰", "password": "123456"}];
         alert(obj); //是个object元素
        //下面使用each进行遍历
        $.each(obj, function (n, value) {
            alert(n + ' ' + value);
            var trs = "";
            trs += "<tr><td>" + value.name + "</td> <td>" + value.password + "</td></tr>";
           tbody += trs;
        });
    
    又例如:
    
        var d1 =[{"text":"一年级","value":"9"},
                 {"text":"二年级","value":"10"},
                 {"text":"三年级","value":"13"}
                ];
        $(d1).each(function(){
               alert(this.text+" "+this.value);
           });

     

    二、jquery遍历解析json对象:

     var json = [{dd:'SB',AA:'东东',re1:123},{cccc:'dd',lk:'1qw'}];
     for(var i=0,l=json.length;i<l;i++){
        for(var key in json[i]){
            alert(key+':'+json[i][key]);
        }
     }

    三、jquery遍历解析json对象:

    var obj ={”name”:”冯娟”,”password”:”123456″,”department”:”技术部”,”sex”:” 女”,”old”:30};
    for(var p in obj){
        str = str+obj[p]+',';
        return str;
    }

    js中json与对象的转换

    一:JSON字符串转为JS对象
    
    var jsonObj1 = JSON.parse(data);  //使用JSON.parse() 将JSON字符串转为JS对象;
    var jsonObj2 = eval('(' + data + ')'); //使用eval() 将JSON字符串转为JS对象;
    
    var json = '[
                 {"id":"1","tagName":"apple"},
                 {"id":"2","tagName":"orange"},
                 {"id":"3","tagName":"banana"},
                 {"id":"4","tagName":"watermelon"},
                 {"id":"5","tagName":"pineapple"}
                ]';
    
    
    $.each(JSON.parse(json), function(idx, obj) {
        alert(obj.tagName);
    });
    
    //or
    
    $.each($.parseJSON(json), function(idx, obj) {
        alert(obj.tagName);
    });
    
    
    二 : 对象转为JSON字符串
    
    var json = {"name":"iphone","price":666}; //创建对象;
    var jsonStr = JSON.stringify(json);       //转为JSON字符串
    console.log(jsonStr);

     

    展开全文
  • 递归由浅到深(一) 递归遍历数组求和的java实现 递归的学习从大一数据结构开始到现在也差不多两年,一直对概念模糊,几乎不曾使用。接着这次重新学习数据结构,对递归进行一次由浅到深的学习。 递归的实质: 将...
  • 遍历数组 <div v-for="(item, index) in [ { username: 'zhangsan', password: 123 }, { username: 'lijiang', password: '123123' }, ]" :key="index" > {{ index }} : {{ item }} </div&
  • JavaScript 遍历数组

    2020-03-14 21:15:54
    我们可以通过 for 循环,进行遍历数组 这里需要注意的是 因为我们的数组是从索引 0 开始的,所以循环里面的 i 必须是从 0 开始的,i < 数组的长度 数组名.length; arr.length 是动态监测数组的长度是元素的...
  • 遍历数组

    2018-11-25 19:34:36
    几个例子来看遍历数组的过程 以及数组的一些计算 public static void main(String[] args) { // TODO Auto-generated method stub /* * 1、将数组int arr[]={56,33,51,49,102,23} * 遍历输出打印到控制台打印...
  • 遍历数组的一些方法

    2020-04-13 23:39:12
    js提供了多种遍历数组的方法,在此简单介绍一下 一,forEach方法 forEach常用的数组遍历方法,它提供一个回调函数,可用于处理数组的每一个元素,默认没有返回值,不影响元素本身。 forEach从头到尾遍历数组,改变...
  • 文章目录概念定长数组概念语法代码示例变长数组概念定义语法代码示例添加/修改/删除元素代码示例遍历数组 概念 scala中数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,...
  • 02-数组新增,修改数据 <script> let num = ['德莱厄斯', '无可匹敌的力量', '这无人可挡的武力', '藐视诺克萨斯的崛起,你将死无葬身之地']; // 修改 新增数据 // console.log(num[0] = '诺手'); ...
  • 1. ES5 5种迭代方法 ES5中 for...in遍历以及 every()和for...in对终止语句break、continue的处理 2. ES6 for...of遍历 keys():对键名(数组下标)的遍历 values():对键值的遍历 ...3. 遍历数组时对空格的处理
  • // arr.reduce( function(value,item,index,arr){ // console.log(value) // // 循环的次数是数组的个数-1 // // value就是上次遍历return的值 // return value + item // } ) /* 累计相加数组元素求和 reduce 返回...
  • JS遍历数组的几种方法 1. forEach forEach函数接受的参数是个函数,函数里面有几个参数,第一个必选,是每一项的值。二三是可选,分别为下标和当前遍历的数组 let arr = ["hello", "world", "!!!"]; arr.forEach...
  • 遍历数组方法总结

    2020-12-29 13:19:01
    1.for循环 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。 for(j = 0,len=arr.length; j < len; j++) { } 2.foreach循环 遍历数组中的每一项,没有返回值,对原...
  • jq的$.each遍历数组

    千次阅读 2018-04-09 16:15:54
    // 遍历数组 var arr2= [5,6,8,10]; $.each(arr2,function(index,value){ console.log("下标:"+index+"值:"+value); }); // 遍历对象 var json ={ name:"王",age:"20&...
  • 通过for循环数组中值求和、求平均值 1、 通过for循环数组中值求和、求平均值 <?php //1、求数组的和、平均值 $num=[1,20,53,23,14,12,15]; $sum=0; for($i=0,$n=count($num);$i<$n;$i++){ $sum+=$num[$i]...
  • 遍历数组计算总和

    千次阅读 2019-09-03 15:45:45
    array.reduce((reslute,currentValue,...数组的reduce方法适合用来计算数组某一指定内容的累加或者其他运算结果的总结果。 let arr = [{ name: 'wuxiaodi', age: 18, }, { name: 'liushan', age: 16, }, { na...
  • js遍历数组方法总结

    2021-04-20 20:18:46
    第一种:for循环,也是最常见的 const arry= [33,66,88,55,44,99]; for(let i=0;i<arry.length;i++){ console.log(arry[i])' } 第二种:forEach 语法:forEach( function(item,index,array){}) //当前元素...
  • 下面以数组求和为例,列举想到的所有数组遍历方法。若有没写出来的,欢迎大家评论补充。 const arr = Array.from(Array(100), (itm,idx) => idx+1); let sum = 0; 1、forEach arr.forEach(item=>{ sum +...
  • 1.最常用的方式for循环 说明:可以设置循环次数 var a = [{a:1, b:2},{a:'张三', b:55},{a:5, b:'lisi'}] // for(var i = 0; i < a.length; i++) { // console.log('aa', a[i]) // } // 另一种写法...
  • java遍历数组详细解答

    2018-11-23 17:33:00
    几个例题解答数组问题: public static void main(String[] args) { // TODO Auto-generated method stub ... * 遍历输出打印到控制台打印格式为 [56,33,51,49,102,23] */ int arr [] = {56,33,...
  • 回调函数参数,item(数组元素)、index(序列)、arr(数组本身) 循环数组,无返回值,不改变原数组 不支持return操作输出,return只用于控制循环是否跳出当前循环 var myArr=[{id:1,name:“sdf”},{id:2,name:“dfsdf...
  • 在控制台输入数组并遍历数组

    千次阅读 2016-12-03 15:49:38
    import java.util.Scanner;... * 分别将10个数保存在一个数组中, * 分别打印出10个数、 * 10个数的平均值、奇数、偶数。 * */public class Shuzuinput { public static void main(String[] args)
  • 此外,由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java数组。例如字符串数组在底层就是Java的String[],整数数组在底层就是Java的Int[]。   // 数组初始化后,长度就固定...
  • 数组实际上就是来源对象,脱胎于对象,继承于对象 数组的创建: var arr=[1,2,3,4,5,6]; var arr1=new Array(6); //这个数字就是数组的长度,没有元素 var arr=new Array(“a”); //这是数组只有一个元素a, var arr=...
  • JS遍历对象求和

    2021-06-04 09:31:36
    JS遍历对象求和
  • 数组元素求和 val a = Array(1, 2, 3, 4, 5) val sum = a.sum // 获取数组最大值 val max = a.max // 对数组进行排序 scala.util.Sorting.quickSort(a) // 获取数组中所有元素内容 a.mkString ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,362
精华内容 7,744
关键字:

循环遍历数组对象求和