轻松上手,快乐学习!

JS 教程

JS 首页JS 教程JS 简介JS 如何使用JS 输出JS 语句JS 语法JS 注释JS 变量JS 运算符JS 算法JS 赋值JS 数据类型JS 函数JS 对象JS 事件JS 字符串JS 字符串方法JS 数值JS 数值方法JS 数组JS 数组方法JS 数组排序JS 数组迭代JS 日期JS 日期格式JS 日期获取方法JS 日期设置方法JS 数学运算JS 随机数JS 布尔运算符JS 比较运算符JS 条件语句JS Switch 语句JS For 循环JS While 循环JS BreakJS 类型转换JS 位运算符JS 正则表达式JS 错误处理JS 作用域JS HoistingJS 严格模式JS this 关键词JS Let 关键词JS Const 关键词JS 箭头函数JS 类JS 调试JS 样式指南JS 最佳实践JS 常见错误JS 性能优化JS 保留关键词JS 版本JS ES5JS ES6JS JSONJS FormsForms APIObject 对象定义Object 对象属性Object 对象方法Object DisplayObject 对象访问器Object 对象构造器Object 对象原型Object ECMAScript 5JS 函数定义JS 函数参数JS 函数调用JS Call 函数JS Apply 函数JS 函数闭包Class 类简介Class 类继承Class StaticJS 回调JS 异步JS PromisesJS Async/AwaitDOM 简介DOM 方法DOM 文档DOM 元素DOM HTMLDOM CSSDOM 动画DOM 事件DOM 事件监听DOM 导航DOM 节点DOM 集合DOM 节点列表JS WindowJS ScreenJS LocationJS HistoryJS NavigatorJS 弹出框JS TimingJS CookiesAJAX 简介AJAX XMLHttpAJAX 请求AJAX 响应AJAX XML 文件AJAX PHPAJAX ASPAJAX 数据库AJAX 应用程序AJAX 实例JSON 简介JSON 语法JSON vs XMLJSON 数据类型JSON 解析JSON 字符串化JSON 对象JSON 数组JSON PHPJSON HTMLJSON JSONPWeb API 简介Web History APIWeb Storage APIWeb Geolocation APIjQuery 选择器jQuery HTMLjQuery CSSjQuery DOMJS 实例JS HTML DOMJS HTML 输入JS HTML 对象JS HTML 事件JS BrowserJS 编辑器JS 练习JS 测验

JS 参考手册

JS 参考手册(类别排序)JS 参考手册(字母排序)


JavaScript 数组方法


把数组转换为字符串

JavaScript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串。

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString();

结果:

Banana,Orange,Apple,Mango
亲自试一试 »

join() 方法也可将所有数组元素结合为一个字符串。

它的行为类似 toString(),但是您还可以规定分隔符:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.join(" * ");

结果:

Banana * Orange * Apple * Mango
亲自试一试 »

Popping 和 Pushing

在处理数组时,删除元素和添加新元素是很简单的。

Popping 和 Pushing 指的是:

从数组弹出项目,或向数组推入项目。


Popping

pop() 方法从数组中删除最后一个元素:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();              // 从 fruits 中删除最后一个元素 ("Mango")
亲自试一试 »

pop() 方法返回"被弹出"的值:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.pop();      // x 的值为 "Mango"
亲自试一试 »

Pushing

push() 方法(在数组结尾处)向数组添加一个新的元素:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");       //  Adds a new element ("Kiwi") to fruits
亲自试一试 »

push() 方法返回新数组的长度:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.push("Kiwi");   //  the value of x is 5
亲自试一试 »

位移元素

位移与弹出等同,但处理首个元素而不是最后一个。

shift() 方法会删除首个数组元素,并把所有其他元素"位移"到更低的索引。

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift();            // 从 fruits 中删除第一个元素 "Banana"
亲自试一试 »

shift() 方法返回被"位移出"的字符串:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.shift();    // x 的值为 "Banana"
亲自试一试 »

unshift() 方法(在开头)向数组添加新元素,并"反向位移"旧元素:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon");    // 将新元素 "Lemon" 添加到 fruits
亲自试一试 »

unshift() 方法返回新数组的长度。

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon");    // 返回 5
亲自试一试 »

更改元素

通过使用它们的索引号来访问数组元素:

数组索引(下标)以 0 开始。[0] 是第一个数组元素,[1] 是第二个,[2] 是第三个 ...

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[0] = "Kiwi";        // 将 fruits 的第一个元素更改为 "Kiwi"
亲自试一试 »

length 属性提供了向数组追加新元素的简易方法:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Kiwi";          // 将 "Kiwi" 附加到 fruits
亲自试一试 »

删除元素

既然 JavaScript 数组属于对象,其中的元素就可以使用 JavaScript delete 运算符来删除

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
delete fruits[0];           // 将 fruits 中的第一个元素更改为 undefined
亲自试一试 »

使用 delete 会在数组留下未定义的空洞。请使用 pop()shift() 取而代之。


拼接数组

splice() 方法可用于向数组添加新项:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
亲自试一试 »

第一个参数(2)定义了应添加新元素的位置(拼接)。

第二个参数(0)定义应删除多少元素。

其余参数("Lemon","Kiwi")定义要添加的新元素。

splice() 方法返回一个包含已删除项的数组:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2, "Lemon", "Kiwi");
亲自试一试 »

使用 splice() 来删除元素

通过聪明的参数设定,您能够使用 splice() 在数组中不留"空洞"的情况下移除元素:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(0, 1);        // 去除 fruits 的第一个元素
亲自试一试 »

第一个参数(0)定义新元素应该被添加(接入)的位置。

第二个参数(1)定义应该删除多个元素。

其余参数被省略。没有新元素将被添加。


合并(连接)数组

concat() 方法通过合并(连接)现有数组来创建一个新数组:

实例(合并两个数组)

var myGirls = ["Cecilie", "Lone"];
var myBoys = ["Emil", "Tobias", "Linus"];
var myChildren = myGirls.concat(myBoys);   // 合并(连接)myGirls 和 myBoys
亲自试一试 »

concat() 方法不会更改现有数组。它总是返回一个新数组。

concat() 方法可以使用任意数量的数组参数:

实例(合并三个数组)

var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3);   // 将 arr1 与 arr2 和 arr3 连接起来
亲自试一试 »

concat() 方法也可以将值作为参数:

实例(将数组与值合并)

var arr1 = ["Emil", "Tobias", "Linus"];
var myChildren = arr1.concat("Peter"); 
亲自试一试 »

裁剪数组

slice() 方法用数组的某个片段切出新数组。

本例从数组元素 1 ("Orange")开始切出一段数组:

实例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1);
亲自试一试 »

slice() 方法创建新数组。它不会从源数组中删除任何元素。

本例从数组元素 3 ("Apple")开始切出一段数组:

实例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(3);
亲自试一试 »

slice() 可接受两个参数,比如 (1, 3)。

该方法会从开始参数选取元素,直到结束参数(不包括)为止。

实例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
亲自试一试 »

如果结束参数被省略,比如第一个例子,则 slice() 会切出数组的剩余部分。

实例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(2);
亲自试一试 »

自动 toString()

如果需要原始值,则 JavaScript 会自动把数组转换为字符串。下面两个例子将产生相同的结果:

这两个例子将产生相同的结果:

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString();
亲自试一试 »

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits;
亲自试一试 »

所有 JavaScript 对象都拥有 toString() 方法。


查找数组中的最大和最小值

没有在 JavaScript 数组中查找最高和最低值的内建函数。

您将在本教程的下一章学习如何解决这个问题。


数组排序

我们将在下一章学习到数组排序的知识。


完整的数组参考手册

如需完整的参考手册,请访问我们完整的 JavaScript 数组参考手册

该参考手册包含所有数组属性和方法的描述和实例。


学习训练

练习题:

使用正确的数组方法删除 fruits 数组的最后一项

var fruits = ["Banana", "Orange", "Apple"];
;

开始练习