• 二维数组的创建以及简单举例


    一、.定义

    在一维数组里面再定义多个一维数组,则是二维数组。(这个定义可能有点片面,但是二维数组的原理大致是这样,在很多语言中,对于二维数组已经三维数组,或者说是多为数组,都是这种思想,比如c语言,c++等,只不过在不同的语言中,可能定义方式有些出入)。

    eg : 

      var arr = [

        [1,2,3],

        [4,5,6],

        [7,8,9],

        [10,11,12]

      ]

    二、二维数组的练习

    1. 通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数 试编程。

      分析:   1. 先创建一个一维数组arr
      2. 利用循环,给a数组中,push5个数组,这样就创建了一个二维数组
            3. 之后,想办法将1-25的自然数,放到数组中
            4. 返回数组
      function fn() {
      var arr = [];
      var count = 1;
      for(var i = 0; i< 5; i++) {
      arr.push([]);
      for(var j = 0; j < 5; j++) {
      //arr[i][j] = count++;
      arr[i].push(count++);
      }
      }
      return arr;
      }
      console.log(fn());
    2. 定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中。试编程。

      分析: 1. 先定义三个数组,arr1【用来存放原数据】,arr2 【用来存放将arr1每五个分割开的数】,meanValue【用来存放平均值】.
      2. 将原数组中的数据,每五个进行分割,放入arr2中。
      3. 对arr2中的每一组数据求平均数,放入meanValue中.
      4. 返回meanValue.
      function fn() {
      var arr = [];
      var arr2 = [];
      var meanValue = [];
      for(var i = 2;i <= 60; i += 2) {
      arr.push(i);
      }
      for(var i = 0;i < 6;i++) {
      arr2.push(arr.splice(0,5));
      }

      for(var i = 0;i < arr2.length; i++) {
      var sum =0;
      for(var j = 0; j < arr2[i].length; j++) {
      sum += arr2[i][j];
      }
      meanValue.push(sum/5);
      }
      return meanValue;
      }
      console.log(fn());
    3. 通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角的和。试编程。

      分析:1. 先给一个5*5的二维数组赋值
      2. 求下半三角元素的和。
      function fn() {
      var arr = [];
      var count = 1;
      var sum = 0;
      for(var i = 0; i < 5;i++) {
      arr.push([]);
      for(var j = 0; j< 5;j++) {
      arr[i].push(count++);
      }
      }
      for(var i = 0; i < 5; i++) {
      for(var j = 0;j <= i; j++) {
      sum += arr[i][j];
      }
      }
      return sum;
      }
      console.log(fn());
    4. 编写函数norepeat(arr) 将数组的重复元素去掉

      分析:1. 利用选择排序的思想,对数组中的每一个数据进行比较,如果两个元素相同,则删除后面的元素
      2. 在将元素删除之后,要让后面的元素向前移了之后,需要对当前位置的元素重新进行判断。
      3. 返回原数组。
      var arr=[1,2,5,4,6,3,2,1,4,5,2,3,6,5,4,1,2,3,2];
      function norepeat(arr) {
      for(var i = 0; i< arr.length-1; i++) {
      for(var j = i+1;j< arr.length;j++) {
      if(arr[i] == arr[j]) {
      arr.splice(j,1);
      j--;
      }
      }
      }
      return arr;
      }
      console.log(norepeat(arr));
    5. 封装功能“有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中”

      var arr = [1, 2, 3, 4, 5, 7, 8, 9];
      function fn(arr, k) {
      var flag = true;
      for (var i = 0; i < arr.length; i++) {
      if (arr[i] >= k) {
      arr.splice(i, 0, k);
      flag = false;
      break;
      }
      }
      if (flag == true) {
      arr.push(k);
      }
      return arr;
      }
      console.log(fn(arr, 410));

     

  • 相关阅读:
    oracle之sqlplus讲解
    oracle数据库--启动和关闭
    linux下使用SSL代理(SSLedge)
    Titanium系列--利用js动态获取当前时间
    Titanium系列--利用Titanium开发android App实战总结
    Titanium系列--我常用的Titanium的快捷键(持续更新中。。)
    Titanium系列--安装Titanium Studio 中的Android SDK,JDK以及环境变量的配置(二)
    Titanium系列--Titanium的简介、Titanium Studio安装和配置(一)
    Happymenu新的开始
    对IEnumerable<T>和IQueryable<T>的一点见解
  • 原文地址:https://www.cnblogs.com/lxz123/p/11494223.html
Copyright © 2020-2023  润新知