精华内容
下载资源
问答
  • 数组遍历再赋值最后整合一个数组对象 <script type="text/javascript" charset="utf-8"> let a = [["张三","14"],["李四","15"],["王五","16"]]; let arr = []; a.forEach(function(value,key){ ...

    数组遍历再赋值最后整合一个新数组对象

    <script type="text/javascript" charset="utf-8">
    	let a = [["张三","14"],["李四","15"],["王五","16"]];
    	let arr = [];
    	a.forEach(function(value,key){
    		console.log(value);
    		let c= {};
    		c.name = value[0];
    		c.id = value[1];
    		arr.push(c);
    	});
    	console.log(arr);
    	//(3) [{…}, {…}, {…}]
    	//0: {name: "张三", id: "14"}
    	//1: {name: "李四", id: "15"}
    	//2: {name: "王五", id: "16"}
    </script>
    
    展开全文
  • JS数组遍历的几种方式以及性能讲解 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 for(j = 0; j < arr....

    JS数组遍历的几种方式以及性能讲解

    JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比

    第一种:普通for循环

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

    简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间

    第二种:优化版for循环

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

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

    这种方法基本上是所有循环遍历方法中性能最高的一种

    第三种:弱化版for循环

    for(j = 0; arr[j]!=null; j++) {
       
    }
    

    简要说明: 这种方法其实严格上也属于for循环,只不过是没有使用length判断,而使用变量本身判断

    实际上,这种方法的性能要远远小于普通for循环

    第四种:foreach循环

    arr.forEach(function(e){  
       
    });
    

    简要说明: 数组自带的foreach循环,使用频率较高,实际上性能比普通for循环弱

    第五种:foreach变种

    Array.prototype.forEach.call(arr,function(el){  
       
    });
    

    简要说明: 由于foreach是Array型自带的,对于一些非这种类型的,无法直接使用(如NodeList),所以才有了这个变种,使用这个变种可以让类似的数组拥有foreach功能。

    实际性能要比普通foreach弱

    第六种:forin循环

    for(j in arr) {
       
    }
    

    简要说明: 这个循环很多人爱用,但实际上,经分析测试,在众多的循环遍历方式中

    它的效率是最低的

    第七种:map遍历

    arr.map(function(n){  
       
    });
    

    简要说明: 这种方式也是用的比较广泛的,虽然用起来比较优雅,但实际效率还比不上foreach

    第八种:forof遍历(需要ES6支持)

    for(let value of arr) {  
       
    });
    

    简要说明: 这种方式是es6里面用到的,性能要好于forin,但仍然比不上普通for循环

    各种遍历方式的性能对比

    上述列举了几种方式都有一一做过对比分析,基本上可以得出的结论是:

    普通for循环才是最优雅的

    (PS:以上所有的代码都只是进行空的循环,没有再循环内部执行代码,仅仅是分析各自循环的时间而已)

    性能对比截图

    分析结果1
    以下截图中的数据是,在chrome (支持es6)中运行了100次后得出的结论(每次运行10次,一共10个循环,得到的分析结果)
    在这里插入图片描述

    可以看出,forin循环最慢。优化后的普通for循环最快

    分析结果2
    以下截图数据是,在chrome (支持es6)中运行了1000次后得出的结论(每次运行100次,一共10个循环,得到的分析结果)

    在这里插入图片描述

    1. javascript遍历的常用的遍历方法是for循环和for-in,ES5的时候加上了forEach方法(IE9以下不支持)。
    /****js原生遍历****/
    //for循环遍历数组
    for(var i=0;i<arrTmp.length;i++){
        console.log(i+": "+arrTmp[i])
    }
     
    //for-in遍历对象属性,i指代属性名
    for(var i in objTmp){
        console.log(i+": "+objTmp[i])
    }
     
    //forEach遍历数组,三个参数依次是数组元素、索引、数组本身
    arrTmp.forEach(function(value,index,array){
        console.log(value+","+index+","+array[index])
    })
    
    1. for-in循环是为了遍历对象而设计的,事实上for-in也能用来遍历数组,但定义的索引i是字符串类型的。如果数组具有一个可枚举的方法,也会被for-in遍历到,例如:
    //for-in遍历数组
    for(var i in arrTmp){
        console.log(i+": "+arrTmp[i])
    }
    //for-in会遍历到数组的属性
    arrTmp.name="myTest";
    for(var i in arrTmp){
        console.log(i+":"+arrTmp[i])
    }
    //输出 0:value1  1:value2  2:value3  name:myTest
    
    1. for循环和for-in能正确响应break、continue和return语句,但forEach不行。
    //只会输出value1 value2
    for(var i=0;i<arrTmp.length;i++){
        console.log(i+": "+arrTmp[i]);
        if(i==1){
            break;
        }
    }
     
    //会输出value1 value2 value3
    arrTmp.forEach(function(value){
        console.log(value+);
        if(value==1){
            return;
        }
    })
    
    1. ES6中,新增了for-of遍历方法。它被设计用来遍历各种类数组集合,例如DOM NodeList对象、Map和Set对象,甚至字符串也行。官方的说法是:
      for…of语句在可迭代对象(包括 Array, Map, Set, String, TypedArray,arguments 对象等等)上创建一个迭代循环,对每个不同属性的属性值,调用一个自定义的有执行语句的迭代挂钩
    // for-of遍历数组,不带索引,i即为数组元素
    for(let i of arrTmp){
        console.log(i)
    }
    //输出 "value1" "value2" "value3"
     
    // for-of遍历Map对象
    let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);
    for (let [key, value] of iterable) {
      console.log(value);
    }
    //输出 1 2 3
     
    // for-of遍历字符串
    let iterable = "china中国";
    for (let value of iterable) {
      console.log(value);
    }
    //输出 "c" "h" "i" "n" "a" "中" "国"
    
    1. 上面的方法,注重点都是数组的元素或者对象的属性值。如果单纯的想获取对象的属性名,js有原生的Object.keys()方法(低版本IE不兼容),返回一个由对象的可枚举属性名组成的数组:
    /****Object.keys()返回键名数组****/
    //数组类型
    let arr = ["a", "b", "c"];
    console.log(Object.keys(arr));
    // (3) ['0', '1', '2']
     
    // 类数组对象
    let anObj = { 100: 'a', 2: 'b', 7: 'c' };
    console.log(Object.keys(anObj));
    // (3) ['2', '7', '100']
     
    //一般对象
    let xyz = {z: "zzz", x: "xxx", y: "yyy"};
    console.log(Object.keys(xyz));
    // (3) ["z", "x", "y"]
    

    javascript原生遍历方法的建议用法:

    • 用for循环遍历数组
    • 用for-in遍历对象
    • 用for-of遍历类数组对象(ES6)
    • 用Object.keys()获取对象属性名的集合

    for … of循环和for … in循环有何区别

    for … in循环,它遍历的实际上是对象的属性名称。
    一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。

    当我们手动给Array对象添加了额外的属性后,for … in循环将带来意想不到的意外效果:

    for in 遍历数组时会为把数组索引作为键值 如:数组0、1、2、3、4、5、…的键;当我们这样写:

    var arr=[1,2,3,4,5,6];
    arr.value='val';
    //在使用for in 遍历时
    for(var i in arr){
        console.log(i+'   '+arr[i]);//这时的i为键值,不为数组索引
    }
    //输出
    0   1
    1   2
    2   3
    3   4
    4   5
    5   6
    value   val
    接着执行,这时出现问题:
     
    arr;//输出[1, 2, 3, 4, 5, 6]
     
    //使用 console.log(arr)时,这样
    console.log(arr);//输出[1, 2, 3, 4, 5, 6, value: "val"]
     
    //alert(arr)时
    alert(arr);//输出[1, 2, 3, 4, 5, 6]
    

    而当我们使用for of 时:

    var arr=[1,2,3,4,5,6];
    arr.value='val';
    //在使用for in 遍历时
    for(var v of arr){
        console.log(v);//v为数组的项
    }
    //输出
    1
    2
    3
    4
    5
    6
    

    直接遍历出值,杜绝使用for in 时,下标索引的影响

    jQuery的$.each

    jQuery的遍历方法通常被用来遍历DOM元素,用于数组和对象的是$.each()方法,它接受三个参数,分别指代数组索引/元素/数组本身(跟forEach相比,第1个和第2个参数正好是相反的,不要记错了。):

    /****$.each()遍历对象和数组****/
    $.each(arrTmp,function(index,value,array){
        console.log(index+": "+value)
    });
     
    $.each(objTmp,function(key,value){
        console.log(key+": "+value)
    });
    

    map

    这里的map不是“地图”的意思,而是指“映射”。[].map(); 基本用法跟forEach方法类似:

    array.map(callback,[ thisObject]);

    callback的参数也类似:

    [].map(function(value, index, array) {
      // ...
    });
    

    map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组。下面这个例子是数值项求平方:

    var data=[1,3,4]
     
    var Squares=data.map(function(val,index,arr){
      console.log(arr[index]==val);  // ==> true
      return val*val          
    })
    console.log(Squares);        // ==> [1, 9, 16]
    
    展开全文
  • JS几种数组遍历方式总结

    万次阅读 多人点赞 2018-03-14 15:25:41
    JS数组遍历的几种方式JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比第一种:普通for循环代码如下:for(j = 0; j &lt; arr.length; ...

    JS数组遍历的几种方式

    JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比

    第一种:普通for循环

    代码如下:

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

    简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间

    第二种:优化版for循环

    代码如下:

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

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

    这种方法基本上是所有循环遍历方法中性能最高的一种

    第三种:弱化版for循环

    代码如下:

    for(j = 0; arr[j]!=null; j++) {
       
    }
    

    简要说明: 这种方法其实严格上也属于for循环,只不过是没有使用length判断,而使用变量本身判断

    实际上,这种方法的性能要远远小于普通for循环

    第四种:foreach循环

    代码如下:

    arr.forEach(function(e){  
       
    });
    

    简要说明: 数组自带的foreach循环,使用频率较高,实际上性能比普通for循环弱

    第五种:foreach变种

    代码如下:

    Array.prototype.forEach.call(arr,function(el){  
       
    });
    

    简要说明: 由于foreach是Array型自带的,对于一些非这种类型的,无法直接使用(如NodeList),所以才有了这个变种,使用这个变种可以让类似的数组拥有foreach功能。

    实际性能要比普通foreach弱

    第六种:forin循环

    代码如下:

    for(j in arr) {
       
    }
    

    简要说明: 这个循环很多人爱用,但实际上,经分析测试,在众多的循环遍历方式中

    它的效率是最低的

    第七种:map遍历

    代码如下:

    arr.map(function(n){  
       
    });
    

    简要说明: 这种方式也是用的比较广泛的,虽然用起来比较优雅,但实际效率还比不上foreach

    第八种:forof遍历(需要ES6支持)

    代码如下:

    for(let value of arr) {  
       
    });
    

    简要说明: 这种方式是es6里面用到的,性能要好于forin,但仍然比不上普通for循环

    各种遍历方式的性能对比

    上述列举了几种方式都有一一做过对比分析,基本上可以得出的结论是:

    普通for循环才是最优雅的

    (PS:以上所有的代码都只是进行空的循环,没有再循环内部执行代码,仅仅是分析各自循环的时间而已)

    性能对比截图

    分析结果1

    以下截图中的数据是,在chrome (支持es6)中运行了100次后得出的结论(每次运行10次,一共10个循环,得到的分析结果) 

    可以看出,forin循环最慢。优化后的普通for循环最快

    分析结果2

    以下截图数据是,在chrome (支持es6)中运行了1000次后得出的结论(每次运行100次,一共10个循环,得到的分析结果) 

       1. javascript遍历的常用的遍历方法是for循环和for-in,ES5的时候加上了forEach方法(IE9以下不支持)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    /****js原生遍历****/
    //for循环遍历数组
    for ( var  i=0;i<arrTmp.length;i++){
         console.log(i+ ": " +arrTmp[i])
    }
     
    //for-in遍历对象属性,i指代属性名
    for ( var  in  objTmp){
         console.log(i+ ": " +objTmp[i])
    }
     
    //forEach遍历数组,三个参数依次是数组元素、索引、数组本身
    arrTmp.forEach( function (value,index,array){
         console.log(value+ "," +index+ "," +array[index])
    })

        2. for-in循环是为了遍历对象而设计的,事实上for-in也能用来遍历数组,但定义的索引i是字符串类型的。如果数组具有一个可枚举的方法,也会被for-in遍历到,例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //for-in遍历数组
    for ( var  in  arrTmp){
         console.log(i+ ": " +arrTmp[i])
    }
    //for-in会遍历到数组的属性
    arrTmp.name= "myTest" ;
    for ( var  in  arrTmp){
         console.log(i+ ":" +arrTmp[i])
    }
    //输出 0:value1  1:value2  2:value3  name:myTest

        3. for循环和for-in能正确响应break、continue和return语句,但forEach不行。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //只会输出value1 value2
    for ( var  i=0;i<arrTmp.length;i++){
         console.log(i+ ": " +arrTmp[i]);
         if (i==1){
             break ;
         }
    }
     
    //会输出value1 value2 value3
    arrTmp.forEach( function (value){
         console.log(value+);
         if (value==1){
             return ;
         }
    })

      4. ES6中,新增了for-of遍历方法。它被设计用来遍历各种类数组集合,例如DOM NodeList对象、Map和Set对象,甚至字符串也行。官方的说法是:

    for...of语句在可迭代对象(包括 Array, Map, Set, String, TypedArray,arguments 对象等等)上创建一个迭代循环,对每个不同属性的属性值,调用一个自定义的有执行语句的迭代挂钩

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // for-of遍历数组,不带索引,i即为数组元素
    for ( let  i of arrTmp){
         console.log(i)
    }
    //输出 "value1" "value2" "value3"
     
    // for-of遍历Map对象
    let  iterable =  new  Map([[ "a" , 1], [ "b" , 2], [ "c" , 3]]);
    for  ( let  [key, value] of iterable) {
       console.log(value);
    }
    //输出 1 2 3
     
    // for-of遍历字符串
    let  iterable =  "china中国" ;
    for  ( let  value of iterable) {
       console.log(value);
    }
    //输出 "c" "h" "i" "n" "a" "中" "国"

      5. 上面的方法,注重点都是数组的元素或者对象的属性值。如果单纯的想获取对象的属性名,js有原生的Object.keys()方法(低版本IE不兼容),返回一个由对象的可枚举属性名组成的数组:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    /****Object.keys()返回键名数组****/
    //数组类型
    let  arr = [ "a" "b" "c" ];
    console.log(Object.keys(arr));
    // (3) ['0', '1', '2']
     
    // 类数组对象
    let  anObj = { 100:  'a' , 2:  'b' , 7:  'c'  };
    console.log(Object.keys(anObj));
    // (3) ['2', '7', '100']
     
    //一般对象
    let  xyz = {z:  "zzz" , x:  "xxx" , y:  "yyy" };
    console.log(Object.keys(xyz));
    // (3) ["z", "x", "y"]

      javascript原生遍历方法的建议用法:

    • 用for循环遍历数组
    • 用for-in遍历对象
    • 用for-of遍历类数组对象(ES6)
    • 用Object.keys()获取对象属性名的集合


    for … of循环和for … in循环有何区别 

    for … in循环,它遍历的实际上是对象的属性名称。

    一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。

    当我们手动给Array对象添加了额外的属性后,for … in循环将带来意想不到的意外效果:

    for in 遍历数组时会为把数组索引作为键值 如:数组0、1、2、3、4、5、…的键;当我们这样写:

    var arr=[1,2,3,4,5,6];
    arr.value='val';
    //在使用for in 遍历时
    for(var i in arr){
        console.log(i+'   '+arr[i]);//这时的i为键值,不为数组索引
    }
    //输出
    0   1
    1   2
    2   3
    3   4
    4   5
    5   6
    value   val
    接着执行,这时出现问题:
    
    arr;//输出[1, 2, 3, 4, 5, 6]
    
    //使用 console.log(arr)时,这样
    console.log(arr);//输出[1, 2, 3, 4, 5, 6, value: "val"]
    
    //alert(arr)时
    alert(arr);//输出[1, 2, 3, 4, 5, 6]

    而当我们使用for of 时:

    var arr=[1,2,3,4,5,6];
    arr.value='val';
    //在使用for in 遍历时
    for(var v of arr){
        console.log(v);//v为数组的项
    }
    //输出
    1
    2
    3
    4
    5
    6

    直接遍历出值,杜绝使用for in 时,下标索引的影响

    jQuery的$.each

        jQuery的遍历方法通常被用来遍历DOM元素,用于数组和对象的是$.each()方法,它接受三个参数,分别指代数组索引/元素/数组本身(跟forEach相比,第1个和第2个参数正好是相反的,不要记错了。):

    1
    2
    3
    4
    5
    6
    7
    8
    /****$.each()遍历对象和数组****/
    $.each(arrTmp, function (index,value,array){
         console.log(index+ ": " +value)
    });
     
    $.each(objTmp, function (key,value){
         console.log(key+ ": " +value)
    });

    map

    这里的map不是“地图”的意思,而是指“映射”。[].map(); 基本用法跟forEach方法类似:

    array.map(callback,[ thisObject]);

    callback的参数也类似:

    ?
    1
    2
    3
    [].map( function (value, index, array) {
       // ...
    });

    map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组。下面这个例子是数值项求平方:

    ?
    1
    2
    3
    4
    5
    6
    7
    var data=[1,3,4]
     
    var Squares=data.map( function (val,index,arr){
       console.log(arr[index]==val);  // ==> true
       return val*val          
    })
    console.log(Squares);        // ==> [1, 9, 16]

    展开全文
  • 1.数组在c语言中,数组可以认为是相同类型数据的集合举个例子,当我们需要计算多个数据,比如说需要计算一个班级的数学成绩的平均分#include在这里定义了5个变量,代表5个学生的数学成绩,然后依次的给变量赋值,但是如果...

    1.数组

    在c语言中,数组可以认为是相同类型数据的集合

    举个例子,当我们需要计算多个数据,比如说需要计算一个班级的数学成绩的平均分

    #include

    65d3a9fd26c8df4c88c54b3d9c5b93a0.png

    在这里定义了5个变量,代表5个学生的数学成绩,然后依次的给变量赋值,但是如果学生的成绩非常多,需要的变量名也会很多,这个时候就需要考虑一下使用更科学的方法来储存数据

    #include

    922fddb97f928a47d4dd8f8885f259bf.png

    int a[5],这句话定义了一个数组,表示在内存中分配了一个可以保存5个整数的空间

    1.1 数组的定义

    数组声明的语法:

    <数据类型> <数组名>[数组长度]

    比如:

    int a[3];
    float b[5];
    char c[12];

    声明数组之后就相当于在内存当中开辟了一个连续的空间,空间的大小取决于数组的长度与数组的元素个数(数组的长度)

    数组空间的大小 = 数组类型 ✖ 数组长度

    在使用数组的时候可以利用数组名[索引]的方式使用数组的元素

    #include

    bf8639cc186c5eb1105f531a9443b4bb.png

    在使用数组的时候需要注意,声明数组的时候中括号当中的数字代表数组的元素个数,使用数组元素的时候,中括号当中的数字代表数组元素的索引(或者称为下标)

    索引的取值范围是从0开始,数组索引的最大值是数组的长度-1

    987c586bbfd972f9b7e91cb72de02033.png

    在使用数组的时候一定要注意数组索引不要越界,也就是不要使用大于等于数组长度的索引

    1.2 数组的初始化

    声明数组之后可以给数组的元素赋值

    #include

    b62142c8acb2fb0456359bdb68e8ce15.png

    也可以在声明的同时初始化数组

    #include

    在这里使用 {元素1,元素2,....} 的方式来初始化数组

    c617c894b36bf7b878be98bfb34e716c.png

    结果是相同的

    如果在声明数组的时候对元素进行初始化,可以省略掉数组的长度,数组会自动按照初始化的长度来处理

    #include

    efd9b794f9a60b7172634417d0ec0aec.png

    如果数组的长度小于初始化元素的个数,那么多余的元素就会被舍去

    #include

    eec89145fc1fa9426f84dd4cf1d8f652.png

    这里数组只包含2个元素,第三个元素a[2]是一个错误的值,初始化数组只有前两个值被赋值到了数组里

    如果数组元素的个数大于初始化的数组,那么数组多余的值会被赋值为 0

    #include

    bc9747e712f9942500dd92e883f18d4a.png

    如果想把数组的元素全部初始化为0,我们就可以这样写

    #include

    4b1c8511959575cb7c9ba93246dedfa6.png

    需要注意的是,初始化数组一定要在数组声明的时候来完成,如果是初始化一个已经声明过的数组,程序就会出错

    #include

    5dec393af1a336a8af1b4d72c808001f.png

    2 使用循环来处理数组

    使用数组带来的最大的好处就是我们可以通过利用循环工具,来批量的处理数组当中的数据

    具体的做法就是把数组元素的索引当作循环的控制变量,通过索引自增,来遍历数组当中的元素

    #include

    77ab6d7d97ab9caa86983d18f454b023.png

    第一次循环i=0,打印的是a[0]的值,第二次循环i=1,打印的是a[1]的值,...,循环次数等于数组的元素个数

    在c99之后,还支持通过变量来动态的初始化数组

    例如我们可以设计一个程序,手动输入学生的成绩,计算学生成绩的平均分

    #include

    76ef30591db2b801565e06aa87ede96c.png

    数组的操作往往回合循环联系到一起,通过循环来遍历数组的元素,是在编写程序的时候经常会用到的手段

    3 二维数组

    有的时候处理的数据并不是线性的,而是有维度的,比如说可能会处理矩阵

    如果使用1维数组的话处理数据的位置就会有一些难度,因此我们可以使用二维数组

    二维数据可以想象为一个表格,有行和列

    e7cbc7f25e00c550a4e78978a44c3878.png

    我们建立数组

    int a[3][3];

    数组的第一个索引表示行号,第二个索引表示列号

    2ec6c72449163748647eaab1555db017.png

    那么 a[0][0]就是第一行第一列的元素为1,a[2][1]就是第三行第二列的元素为8

    3.1 二维数组的初始化

    声明二维数组

    <数据类型> <数组名>[第一维长度][第二维长度]

    比如说

    int a[2][3];

    a[2][3]就是一个2行3列的二维数组,使用的时候每个维度的索引都是由0开始,最大值为长度-1,所以 数组a的保存元素从 a[0][0]到a[1][2]

    f2b19351778ecd868dde45052af3432d.png

    我们也可以把二维数组想象为一个由一维数组组成的数组

    7a7dcad99b66160deb910b93304d2e04.png

    数组a由两个数组组成,a[0],a[1] 而a[0],a[1]又分别由三个整形数据组成

    所以我们可以使用大括号的方式来给数组初始化

    #include

    505b4dd39b99d7f0c8ac9e20e012210e.png

    数组的总大小除以整数的大小,就是数组包含的元素个数

    二维数组的大小除以其中包含的一维数组的大小,就是二维数组中包含的一维数组的个数,即数组的行数

    每个一维数组的大小除以整型数据的大小,就是一维数组的长度,即数组的列数

    在初始化二维数组的时候可以省略一维数组的大括号,会自动按顺序分配每个元素的位置

    #include

    cbd1f777a57b92ca0205e78b219cc8a4.png

    结果是一样的

    如果数据的个数是明确的,那么在声明数组的时候只要指明每个一维数组的长度,可以省略二维数组的长度,即只需要指明列数可以省略行数

    #include

    89e76abe46a0987637f8a642c018001a.png

    会自动计算行数

    如果数据不够填满数组,那么剩余的部分依然会补0

    #include

    6b948a9c9f36da4279cbea23b6855787.png

    如果要初始化所有元素都为0,就可以这样写

    #include

    a4543062084e0b28465cfbcc2d79bb0f.png

    3.2 使用循环遍历二维数组

    操作二维数组就需要使用嵌套的循环,外层循环的控制变量就是数组的第一维索引,内层循环的控制变量就是数组的第二维索引

    如果我们要输出数组的所有元素

    #include

    1deb0faae3304b99fc695abd00730276.png

    同样的也存在三维以上的数组,操作方式都是一样的

    展开全文
  • shell数组遍历

    2020-05-01 18:11:12
    Shell数组遍历的三种方法及注意事项 _荣耀之路_ 2019-02-25 16:34:05 5424 收藏 展开 遍历数组时,使用哪种方式取决于数组中元素的分布情况。 定义如下两个数组: #下标连续 arr1=(a b c d e) #下标不连续 ...
  • 4.map():对数组中的每一项运行给定的函数,返回函数运行的所有结果组成数组;(适用于对数组中的元素进行逻辑处理,并且返回处理结果) 5.some():对数组中的每一项运行给定的函数.如果该函数对任一项返回true,则返回...
  • 目录 一、concat() 二、join() 三、push() 四、pop() 五、shift() 六、unshift() 七、slice() 九、substring() 和 substr...ES6新增操作数组的方法 1、find(): 2、findIndex(): 3、fill(): 4、copyWi
  • JavaScript数组遍历和过滤常用方法

    千次阅读 2019-06-07 16:51:44
    一、基本迭代方法 1.for语句 二、ECMASCript5定义中的方法 ...函数会接收3个参数:每次迭代数组项的值、该项在数组中的位置以及数组对象本身。 三、ECMAScript 6.0( ES6、ES2015)定义中的方法 ...
  • ES5中的新增方法数组方法迭代(遍历)方法:字符串方法对象方法 数组方法 迭代(遍历)方法: currentValue:数组当前项的值 index:数组当前项的索引 arr:数组对象本身 1.forEach(): array.forEach(function(current...
  • JS Array 数组遍历

    千次阅读 2018-09-02 15:30:59
    数组遍历是经常进行的一个操作,然而总是有时候会记不住各种遍历的返回值,是否会改变原数组等,这里做一个对比总结。 在ECMAScript5为数组定义5个迭代的方法,每个方法都接收两个参数:要在每一项运行的函数和(可...
  • 示例代码如下: package ...Array数组 遍历 四种方式(包含 Lambda 表达式遍历) https://www.cnblogs.com/miracle-luna/p/10995469.html List集合 遍历 四种方式(包含 Lambda 表达式遍历) ...
  • JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代码如下: for(j = 0; j < arr.length; j++) { } 简要说明...
  • es6数组遍历

    2020-01-17 15:03:38
    ## ES5-数组方法 ### forEach `forEach()` 方法对数组的每个元素执行一次提供的函数。功能等同于`for`循环. 应用场景:为一些相同的元素,绑定事件处理器! **需求:遍历数组["张飞","关羽","赵云","马超"]*...
  • angular ts 数组遍历&&数组建立&&根据新建数组的值定义样式1.在遍历已知数组前建立数组,若在循环中建立会是一个一个分开的数组,数据不会累加2.遍历已知数组,并将其值赋给新建数组对应字段3....
  • 数组遍历forEach和map应用及区别 forEach 定义和用法 forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。 注意: forEach() 对于空数组是不会执行回调函数的。 1、利用forEach()遍历数组 ...
  • 文章目录一、数组遍历方式【ES5】1. for循环2. forEach():没有返回值,只是针对每个元素调用func3. map():返回的Array,每个元素为调用func的结果4. filter():返回符合func条件的元素数组5. some():返回...
  • Shell数组遍历的三种方法及注意事项

    万次阅读 2019-02-25 16:34:05
    Shell数组遍历的三种方法及注意事项
  • 用于遍历数组元素 3.forEach() arr.forEach(element =>{}) 或arr.forEach((item,index,arr)=>{}) (印证前一篇说的箭头函数可以将外圈函数中的参数类型拿来用) 索引和数组不是必选 注意:fo
  • 数组遍历 arr.map(callback [, thisArg]) map方法我们用得最最最多了吧,超级好用,当你需要批量改变数组中的值的时候就要想到它了 注:map方法不会改变原始值,它会返回一个的数组 例: let arr = [1, 2, 3,...
  • man函数中不能存在break和continue语句,和foreach不同的是foreach没有返回值,但是map函数具有返回值为每次执行时返回的值组成数组,如果没有指定返回值返回值为undefined。下面我们来看一下map方法进行数组求和...
  • forEach()方法用于调用数组的每个元素(循环遍历数组中的每一个元素),并将元素传递给回调函数。它内部的回调函数可以传入三个参数:function(item, index, arr)item为必填参数,表示当前元素index为可选参数,表示...
  • java二维数组遍历与元素查找

    千次阅读 2018-03-06 22:00:36
    java二维数组 格式 数据类型 [ ][ ] arrayName = new 数据类型[一维数组的个数][每个一维数组的长度] 例如: int [ ][ ] array = new int [2][3]; int [ ][ ] arr = {{2,3,4},{4,5,6}} 属性方法 二维数组的...
  • 数组遍历方法总结

    2021-09-30 13:57:53
    一,ES5中数组遍历方式: 1.for 循环 ** for(let i = 0;i<arr.length;i++){ console.log(arr[i]) } 复制代码 2.forEach()遍历 ** arr.forEach((item=>{ console.log(item) })) 复制代码 注意: ...
  • JAVA实现 数组遍历

    2018-07-26 15:00:15
    foreach是java5的特性,主要增强了for循环,用在数组和集合上很方便。foreach不是一个关键字,只是一个格式; foreach语句格式: for(元素类型type 元素变量value : 遍历对象obj) { 引用x的java语句; } ...
  • 遍历数组对象属性并将生成新数组

    千次阅读 2019-10-16 14:27:53
    遍历数组对象属性并将生成新数组 sort() { let a = [] let b = this.tableData // 遍历数组对象属性并将生成新数组 b.forEach(function(item, index) { a.push({ id: item.btn_id, sort_num: 1 + index }) ...
  • 都是数组的方法 都是用来遍历数组 两个函数都有4个参数:匿名函数中可传3个参数item(当前项),index(当前项的索引),arr(原数组),还有一个可选参数this 匿名函数中的this默认是指向window的 对空数组不会...
  • this.plans = [ { id: 0, name: '小明', age: 15 }, { id: 1, name: '小花', age: 20 }, { id: 2, name: '小天', age: 19 } ] const [a, .
  • C#多维数组遍历

    2021-01-04 18:10:02
    Console.WriteLine("开始遍历多维数组"); Console.WriteLine("----------------------------------"); int wei = 0; for (int i = 0; i (0); i++) { for (int js1 = 0; js1 (1); js1++) { for (int js2 = 0; js2 (2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,583
精华内容 74,633
关键字:

数组遍历后组成新数组