菜鸟教程 -- 学的不仅是技术,更是梦想!

Javascript 教程
JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript VScode JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 字符串模板 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语句 JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript async/await JavaScript 代码规范 JavaScript 测验

JS 函数

JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包

JS

JavaScript 类 JavaScript 类继承 JavaScript 静态方法

JS HTML DOM

DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象

JS 高级教程

JavaScript 对象 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象

JS 浏览器BOM

JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie

JS

JavaScript 库 JavaScript 测试 jQuery JavaScript 测试 Prototype

JS 实例

JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结

JS 参考手册

JavaScript 对象 HTML DOM 对象 JavaScript 异步编程 JavaScript 静态方法
(追記) (追記ここまで)

JavaScript Array(数组) 对象


数组对象的作用是:使用单独的变量名来存储一系列的值。


[画像:Examples]

在线实例

创建数组, 为其赋值:

实例

var mycars = new Array();
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";

尝试一下 »

页面底部你可以找到更多的实例。


什么是数组?

数组对象是使用单独的变量名来存储一系列的值。

如果你有一组数据(例如:车名字),存在单独变量如下所示:

var car1="Saab";
var car2="Volvo";
var car3="BMW";

然而,如果你想从中找出某一辆车?并且不是3辆,而是300辆呢?这将不是一件容易的事!

最好的方法就是用数组。

数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。

数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。


创建一个数组

创建一个数组,有三种方法。

下面的代码定义了一个名为 myCars的数组对象:

1: 常规方式:

var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";

2: 简洁方式:

var myCars=new Array("Saab","Volvo","BMW");

3: 字面:

var myCars=["Saab","Volvo","BMW"];


访问数组

通过指定数组名以及索引号码,你可以访问某个特定的元素。

以下实例可以访问myCars数组的第一个值:

var name=myCars[0];

以下实例修改了数组 myCars 的第一个元素:

myCars[0]="Opel";

lamp [0] 是数组的第一个元素。[1] 是数组的第二个元素。


在一个数组中你可以有不同的对象

所有的JavaScript变量都是对象。数组元素是对象。函数是对象。

因此,你可以在数组中有不同的变量类型。

你可以在一个数组中包含对象元素、函数、数组:

myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;


数组方法和属性

使用数组对象预定义属性和方法:

var x=myCars.length // myCars 中元素的数量
var y=myCars.indexOf("Volvo") // "Volvo" 值的索引值


完整的数组对象参考手册

你可以参考本站关于数组的所有属性和方法的完整参考手册。

参考手册包含了所有属性和方法的描述(和更多的例子)。

完整数组对象参考手册


创建新方法

原型是JavaScript全局构造函数。它可以构建新Javascript对象的属性和方法。

实例:创建一个新的方法。

Array.prototype.myUcase=function(){
for (i=0;i<this.length;i++){
this[i]=this[i].toUpperCase();
}
}

尝试一下 »

上面的例子创建了新的数组方法用于将数组小写字符转为大写字符。


[画像:Examples]

更多实例

合并两个数组 - concat()

合并三个数组 - concat()

用数组的元素组成字符串 - join()

删除数组的最后一个元素 - pop()

数组的末尾添加新的元素 - push()

将一个数组中的元素的顺序反转排序 - reverse()

删除数组的第一个元素 - shift()

从一个数组中选择元素 - slice()

数组排序(按字母顺序升序)- sort()

数字排序(按数字顺序升序)- sort()

数字排序(按数字顺序降序)- sort()

在数组的第2位置添加一个元素 - splice()

转换数组到字符串 -toString()

在数组的开头添加新元素 - unshift()

AI 思考中...

5 篇笔记 写笔记

  1. #0

    LongStay

    xuz***[email protected]

    39

    使用数组对象结合 select 对象实现二级级联菜单。

    select1 省级菜单, select2市级菜单

    在省级标签中添加事件onchange="addOption()"

    <select id="a1" onchange="addOption()"></select>
    <select id="a2"></select>
    

    尝试一下 »

    LongStay

    xuz***[email protected]

    9年前 (2017年06月14日)
  2. #0

    Mrshang110

    146***[email protected]

    17

    访问数组元素和访问对象属性时,会发现他们的格式很像:

    var array = [1, 2, 3];
    var item = array[2]; // 访问数组元素
    var person = {name: "Mrshang110", age: 24};
    var name = person["name"]; // 访问对象元素

    数组是特殊的对象。

    对象的属性名是字符串类型的,数组可以看做属性名是数字类型的,这样就很好理解了。

    数组还针对数组的特性,对对象属性的布局做了优化。

    Mrshang110

    146***[email protected]

    9年前 (2017年06月14日)
  3. #0

    子不语

    394***[email protected]

    15

    遍历一维数组: 依次访问数组中每个元素,对每个元素执行相同的操作

    for(var i=0;i<arr.length;i++){
     arr[i]//当前正在遍历的元素
    }

    遍历关联数组: for in 循环

    for(var key in hash){
     key//只是元素的下标名
     hash[key]//当前元素值
    }

    其实: js底层,一切对象都是关联数组:

    比如: 索引数组,window等

    遍历二维数组: 外层循环遍历行,内层循环遍历列

    for(var r=0;r<arr.length;r++){
     for(var c=0;c<arr[r].length;c++){
     arr[r][c]//当前元素
     }
    }

    子不语

    394***[email protected]

    9年前 (2017年09月28日)
  4. #0

    生活很黑白

    975***[email protected]

    40

    Js 中为数组提供了多种遍历方式

    const ary = ['a', 'b', 'c'];
    // 最基本的方式, 只能遍历下标有序递增的数组
    for (let i=0; i<ary.length; i++) {
     console.log(i, ary[i]); // 0 a 1 b 2 c
    }
    // in:每遍历一次数组指针向后移动一位, 并得到当前数组元素值的下标, 可以通过 ary[key] 来访问数组元素值
    for (let key in ary) {
     console.log(key, ary[key]); // 0 a 1 b 2 c
    }
    // of:每遍历一次数组指针向后移动一位, 并得到当前数组元素的值, 处理二维数组时极为方便
    for (let value of ary) {
     console.log(value); // a b c
    }

    Js还为数组对象内置了多种迭代方法, 处理数组时极为方便

    /**
     * forEach(function)
     * 
     * 该方法接受一个函数作为参数, 该函数拥有两个参数, 分别为数组的值、键
     * 该方法没有返回值
     */
     ary.forEach((value, key) => {
     console.log(key, value); // 0 a 1 b 2 c
     })
    /**
     * map(function)
     * 
     * 该方法接受一个函数作为参数, 该函数拥有两个参数, 分别为数组的值、键
     * 可以在传入的函数中返回相应的值,你每次迭代时返回的值会被map方法组装成一个新数组作为返回值返回
     */
     var result = ary.map((value, key) => {
     return value + '_runoob.com';
     })
     console.log(result); // ['a_runoob.com', 'b_runoob.com', 'c_runoob.com']

    生活很黑白

    975***[email protected]

    9年前 (2018年01月08日)
  5. #0

    tianqixin

    429***[email protected]

    30

    数字索引与非数字索引

    JavaScript 数组只支持数字索引,非数字索引指的是对象的属性了。

    JavaScript 的数组可以看做是特殊的对象(object),对象的属性有两种表示方法。
    var a=Object();
    a.myattr="runoob";
    a["myattr"]="runoob";

    查看以下实例:

    var a=new Array();
    a['a1']=1;
    a['a2']=2;
    a.length // 输出0

    实例中由于你没有给数组的元素赋值,所以 a 数组的长度也没有被创建出来,此时 a.length 输出结果为 0。

    var a=new Array();
    a['a1']=1;
    a['a2']=2;
    a[2]=3;
    a.length // 输出3
    

    在最后一行代码中数组元素 a[2] 赋值了,此时 JavaScript 会给数组 a 创建一个长度为 3 的空间,并在第三个元素中赋以3,但是元素1和元素2都没有赋值,所以此时a[0]和a[1]是没有值的。

    如果要使用的是一个完全由"字符串下标"组成的数组,那还是将其声明为一个 Object 类型的对象要更好一些。

    var a=new Array();
    a['a1']=1;
    a["100"]=3;
    a.length // 输出 101
    

    Javascript 数组下标值的范围为 0 ~ 232。对于任意给定的数字下标值,如果不在此范围内,Javascript 会将它转换为一个字符串,并将该下标对应的值作为该数组对象的一个属性值而不是数组元素,例如 array[-1] = "yes" 其实就相当于给 array 对象添加了一个名为 -1 的属性,属性值为 yes。如果该下标值在合法范围内,则无论该下标值是数字还是数字字符串,都一律会被转化为数字使用,即 array["100"] = 0array[100] = 0 执行的是相同的操作。

    tianqixin

    429***[email protected]

    8年前 (2018年03月17日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /