IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> JavaScript第七篇 -> 正文阅读

[游戏开发]JavaScript第七篇

数组(Array)

1.数也是一个对象
2.它和我们普通的对象功能类似,也是用来存储一些值的
3.不同的是普通对象是使用字符串作为属性名的,而数组则使用数字来作为索引操作元素
4.数组的存储性能比普通对象好,在开发中经常使用数组来存储一些数据
5.使用typeof检查数组会返回object

1、索引:从0开始的整数就是索引

//创建数组对象
var arr = new Array();
//向数组中添加元素
//语法: 数组[索引] = 值
arr[0] = 10;
arr[1] = 33;
arr[2] = 55;
//读取数组中的元素
//语法:数组[索引]
//如果读取不存在的索引,会返回undefined
console.log(arr[0]);
//获取数组的长度
//可以使用length属性来获取数组的长度(元素的个数)
//语法: 数组.length
//对于连续的数组,使用length可以获取到数组的长度(元素的个数)
//对于非连续的数组,使用length可以获取到数组的最大索引+1
//尽量不要创造非连续的数组
console.log(arr.length);
//修改length
//如果修改的length大于原长度,则会多出部分会空出来
//如果修改的length小于原长度,则多出的元素会被删除

//向数组的最后一个位置添加元素
arr[arr.length] = 70;//相当于arr[3]

数组对象的创建的两种方法

  • 字面量方式
  • new Array

检查是否为数组

1.instanceof运算符,可以判断一个对象是否属于某种类型
2.Array.isArray()用于判断一个对象是否属于为数组,是HTML5新提供的方法

 console.log(arr instanceof Array);true
 console.log(Array.isArray(obj));true

1.3添加删除数组元素

1.push(参数1…) 末尾添加一个或多个元素,注意修改原数组 并返回新的长度
2.pop() 删除数组最后一个元素 返回它删除的元素的值
3.unshift(参数1…) 向数组的开头添加一个或更多元素,注意修改原数组 并返回新的长度
4.shift() 删除数组的第一个元素,数组长度减1,无参数,修改原数组 并返回第一个元

    var arr=[];
    arr.push('sb','lyh');
    console.log(arr);//1,2,3,sb,lyh
    console.log( arr.pop());//lyh
    console.log(arr);//sb
    arr.pop
    arr.unshift('1','jx','ust',)
    console.log(arr);//1,jx,ust

筛选数组

有一个包含工资的数组[1500,1200,2000,2100,1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面

 var arr=[1500,1200,2000,2100,1800];
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]>=2000){
            //newArr[newArr.length]=arr[i];
            newArr.push(arr[i]);
        }
    }
    console.log(newArr);

foreach(),slice(),splice()

foreach()

  • 这个方法只支持IE8以上的浏览器
  • 需要一个函数作为参数
  • 像这种函数由我们创建但是不是由我们调用的,我们称为回调函数
  • 数组中有几个元素,就会执行几次,每次执行时,浏- 览器会将遍历到的元素以实参的形式传递进来,我们可以定义形参读取这些内容
  • 浏览器会在回调函数中传递三个参数:第一个就是当前正在遍历的元素;第二个时当前遍历元素的索引;第三个就是正在遍历的数组
var arr = ["猪八戒","沙和尚","唐僧","孙悟空"];
arr.foreach(function(value , index , obj){
console.log(value)}
); 

slice()

  • 可以用来从数组中提取指定的元素
  • 该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回
  • 参数:第一个是截取开始位置的索引,包含开始索引;第二个是截取结束的位置的索引,不包含结束索引
  • 索引可以传递一个负值,如果传递一个负值,则从后往前计算
var arr = ["猪八戒","沙和尚","唐僧","孙悟空"];
var result = arr.slice(1,2);//返回沙和尚
result = arr.slice(1,-1);//返回沙和尚和唐僧
console.log(result);

splice()

  • 使用splice()会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回
  • 参数:第一个,表示开始的位置的索引;第二个,表示删除的数量;第三个及以后,可以传递一些新的元素,这些元素会自动插入到开始位置索引前边

数组排序

reverse()

  • 颠倒数组中元素的顺序,无参数
  • 该方法会改变原来的数组,返回新数组

sort()

  • 对数组的元素进行排序
  • 该方法会改变原来的数组,返回新数组
 var arr=[1500,1200,2000,2100,1800];
    arr.reverse;
    console.log(arr);
    var arr2=[1,2,59,4,79,87];
    arr2.sort(function(a,b){
          return b-a;//降序排列
          return a-b //升序排列
    }
    );
    console.log(arr2);

函数的方法call()和apply()

  • 这两个方法都是函数对象的方法,需要通过函数对象调用
  • 当对函数调用call()和apply()都会调用函数执行,fun(),fun.call(),fun.apply()
  • 在调用call()和apply()可以将一个对象指定为第一个参数此时这个对象将会成为函数执行时的this
function fun(){//fun为函数对象
alert(this.name);}
var obj = {name :"obj"
sayName:function(){
alert(this.name);
}
};
var obj2 = {name:"obj2"};
fun.apply(obj);
obj.sayName.apply(obj2);//会返回"obj2"

function fun(a,b){
console.log("a=" + a);
console.log("b=" + b);
}
var obj = {name :"obj"
sayName:function(){
alert(this.name);
}
};
fun.call(obj,2,3);//a=2,b=3
//call()方法可以将实参在对象之后依次传递
fun.apply(obj,[2,3]);
//apply()方法需要将实参封到一个数组中统一传递
var obj2 = {name:"obj2"};

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:54:10  更:2022-03-24 00:56:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:32:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码