javascript全端开发之数组与函数

1.数组
一种最常用的数据类型之一,属于对象函数类型中的内置对象。是储存一系列值的变量集合,由一个或多个数组元素组成。数组元素由下标和值构成。下标为索引,以数字表示,从0开始。值为元素中的内容,可以为任意类型的数据。
划分为一维数组,二维数组,三维数组等多维数组。
2.创建数组的两种方式
一个是使用Array()对象创建数组。通过关键字new来实现。
var 变量=new Array();
另一个是通过中括号“[]”来创建数组
var 变量=[元素,];
在创建数组时,最后一个元素的逗号可以省略,第二种可以创建含有空储存位置的数组。
3.数组的操作(基本)
length 属性可以获取数组的长度或者修改数组长度,其值为数组元素最大下标加1.
length的值大于数组原来的元素个数,没有值会占用空储存的位置,小于,多余的数组元素会舍弃。
4.数组的访问与遍历
访问通过数组名[下标]来获取指定下标的值。
遍历数组的元素:for或者for、、、in或者for、、、of
javascript全端开发之数组与函数_第1张图片
5.。数组元素的添加与修改
添加元素:数组名[下标]=值
修改方式相同,就是为已有的值重新赋值
元素的删除:delete关键字删除该数组的值,元素会占用一个空储存的位置。
6.二维数组是最常见的多维数组。
7.数组排序
冒泡排序:排序算法,按照从小到大或从大到小的顺序排列。
插入排序:冒泡排序的优化,通过构建有序数组元素的存储,为未排序的数组元素,在已排序的数组总进行遍历,并找位置插入。
8.常用的数组方法
push()将一个元素或者多个添加到数组的末尾,并返回数组的新长度
unshift()将一个元素或者多个添加到数组的开头,并返回数组的新长度
pop()从数组的末尾移出并返回一个元素,为空数组返回undefined
shift()从数组的开头移出并返回一个元素,为空数组返回undefined
9.数组的检索方法
includes(),用于确认数组中是否含有某个元素,含有返回true,否则为false
Array.isArray()用于确认是否传递的值是否是一个Array,是返回true,否则为false
indexOf()返回在数组中可以找到给定值的第一个索引,不存在返回-1
lastIndexOf()返回指定元素在数组中的最后一个的索引,不存在返回-1

一个动态实践
关于城市的三级联动


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>省份城市的三级联动</title>
  </head>
  <body>
    <form>
      <select id="province">
        <option value="-1">请选择</option>
      </select>
      <select id="city"></select>
      <select id="country"></select>
    </form>
    <script>
      // 省份数组
      var provinceArr = ['上海', '江苏', '河北'];
      // 城市数组
      var cityArr = [
        ['上海市'],
        ['苏州市', '南京市', '扬州市'],
        ['石家庄', '秦皇岛', '张家口']
       ];
      // 区域数组
      var countryArr = [
        [
          ['黄浦区', '静安区', '长宁区', '浦东区']
        ], [
          ['虎丘区', '吴中区', '相城区', '姑苏区', '吴江区'],
          ['玄武区', '秦淮区', '建邺区', '鼓楼区', '浦口区'],
          ['邗江区', '广陵区', '江都区']
        ], [
          ['长安区', '桥西区', '新华区', '井陉矿区'],
          ['海港区', '山海关区', '北戴河区', '抚宁区'],
          ['桥东区', '桥西区', '宣化区', '下花园区']
        ]
      ];
      // 第1步
      function createOption(obj, data) {
        for (var i in data) {
          var op = new Option(data[i], i);   // 创建下拉列表中的option选项
          obj.options.add(op);               // 将选项添加到下拉列表中
        }
      }
      var province = document.getElementById('province');
      createOption(province, provinceArr);
      // 第2步
      var city = document.getElementById('city');
      province.onchange = function() {
        city.options.length = 0;        // 清空city下的原有
        createOption(city, cityArr[province.value]);
        if (province.value >= 0) {
          city.onchange();              // 自动添加 城市对应区域 下拉列表  
        } else {
          country.options.length = 0;   // 清空country下的原有
        }
      };
      // 第3步
      var country = document.getElementById('country');
      city.onchange = function() {
        country.options.length = 0;     // 清空country下的所有原有
        createOption(country, countryArr[province.value][city.value]);
      };
    </script>
  </body>
</html>

还有一个猴子选大王的javascript代码


<script>
  var total = prompt('请输入猴子的总数');
  var kick = prompt('踢出第几只猴子');
  var monkey = [];
  for (var i = 1; i <= total; ++i) {    // 创建猴子数组
    monkey.push(i);
  }
  i = 0;                                // 记录每次参与游戏(报数)的猴子位置
  while (monkey.length > 1) {           // 在猴子数量大于1时进行循环
    ++i;                                // 猴子报数
    head = monkey.shift();              // 从monkey数组的开头,取出猴子
    if (i % kick != 0) {                // 判断是否踢出猴子,不踢则把该猴子添加到monkey数组的尾部
      monkey.push(head);                // 继续参加游戏的猴子
    }
  }
  console.log('猴王编号:' + monkey[0]);
</script>


坚持努力。

你可能感兴趣的:(前端js学习)