35-在数组中增删元素
3.10.5 在数组中增删元素
在MongoDB shell脚本中操作JavaScript数组 在本节中,您将编写一个以各种方式操作数组的MongoDB shell脚本。在这个示例中,首先创建了一个由一周的工作日组成的数组,然后使用方法slice(0)克隆这个数组,再分别使用方法unshift()和push()在数组开头和末尾压入一个元素。最后,使用方法splice()切割出该数组的中间部分。 为编写这个首先创建一个数组,再通过操作它来创建其他数组的脚本,请执行如下步骤。 1.确保启动了MongoDB服务器。虽然您不会连接到数据库,但要启动MongoDB shell,必须先启动MongoDB服务器。 2.在文件夹code/hour03中新建一个文件,并将其命名为arrays.js。 3.在这个新文件中输入程序清单3.7所示的代码。这些代码创建并操作数组。 4.将这个文件存盘。 5.打开一个控制台窗口,并切换到目录code/hour03。 6.执行命令mongo arrays.js以运行第2步和第3步创建的JavaScript文件。这个脚本的输出如程序清单3.8所示。 程序清单3.7 arrays.js:在MongoDB shell脚本中创建并操作JavaScript数组 程序清单3.8 arrays.js-output:在MongoDB shell脚本中创建并操作JavaScript数组的输出 ▲
通过使用各种内置方法,可以多种不同的方式在Array对象中增删元素。表3.8演示了本书将使用的各种方法。
| 语句 | x的值 | arr的值 | | :----- | :----- | :----- | :----- | :----- | | var arr = [1,2,3,4,5]; | 未定义 | 1,2,3,4,5 | | var x = 0; | 0 | 1,2,3,4,5 | | x = arr.unshift("zero"); | 6(数组长度) | zero,1,2,3,4,5 | | x = arr.push(6,7,8); | 9(数组长度) | zero,1,2,3,4,5,6,7,8 | | x = arr.shift(); | zero | 1,2,3,4,5,6,7,8 | | x = arr.pop(); | 8 | 1,2,3,4,5,6,7 | | x=arr.splice(3,3,"four", "five","six"); | 4,5,6 | 1,2,3,four,five,six,7 | | x = arr.splice(3,1); | four | 1,2,3,five,six,7 | | x = arr.splice(3,3); | five,six,7 | 1,2,3 |
▼ Try It Yourself
01 var weekDays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
02 print("Week Days: ");
03 printjson(weekDays);
04 print("Combining Arrays: ");
05 var fullWeek = weekDays.slice(0);
06 fullWeek.unshift("Sunday");
07 fullWeek.push("Saturday");
08 print("Full Week: ");
09 printjson(fullWeek);
10 var midWeek = weekDays.splice(1,3);
11 print("Mid Week: ");
12 printjson(midWeek);
13 print("Sliced weekdays: ");
14 printjson(weekDays);
Week Days:
[ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ]
Combining Arrays:
Full Week:
[
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
Mid Week:
[ "Tuesday", "Wednesday", "Thursday" ]
Sliced weekdays:
[ "Monday", "Friday" ]