Java编写数组方法脚本:使用示例创建

什么是数组? Java脚本?
数组是一个可以存储 物品的集合当您需要存储大量相同类型的数据时,数组就非常有用。假设您想要存储 500 名员工的详细信息。如果您使用变量,则需要创建 500 个变量,而使用单个数组即可完成相同的操作。您可以通过引用数组元素来访问数组中的元素。 索引号数组第一个元素的索引为零。
与严格类型语言中的数组不同, Java脚本数组是动态的。当添加新元素时,数组的长度会自动增长,单个数组可以同时包含字符串、数字、布尔值、对象,甚至其他数组。这种灵活性使得数组成为浏览器脚本和服务器端代码中列表数据的默认容器。
如何在……中创建数组 Java脚本
您可以在中创建一个数组 JavaScript 如下所示。
var students = ["John", "Ann", "Kevin"];
在这里,您将在创建数组时使用值“John”、“Ann”和“Kevin”对其进行初始化。“John”、“Ann”和“Kevin”的索引分别为 0、1 和 2。如果您想向学生数组添加更多元素,可以这样做:
students[3] = "Emma"; students[4] = "Rose";
你也可以使用 Array 构造函数创建数组,如下所示:
var students = new Array("John", "Ann", "Kevin");
OR
var students = new Array(); students[0] = "John"; students[1] = "Ann"; students[2] = "Kevin";
如何访问和修改数组元素
每个元素都位于一个编号位置。方括号表示法用于读取值、赋新值,或在索引等于当前长度时追加新条目。
let students = ["John", "Ann", "Kevin"]; console.log(students[0]); // John - first element console.log(students[students.length - 1]); // Kevin - last element students[1] = "Anna"; // replace an existing value students[3] = "Emma"; // append a new value console.log(students); // ["John", "Anna", "Kevin", "Emma"] console.log(students.length); // 4 console.log(students[9]); // undefined - index does not exist
⚠️警告: 给一个远超出当前长度的索引赋值会创建一个稀疏数组,其中会充满空槽。 push() 而不是使用跳转索引,这样数组就能保持紧凑和可预测性。
Java脚本数组方法
Array 对象具有许多属性和方法,可帮助开发人员轻松高效地处理数组。您可以通过指定 arrayname.property 获取属性的值,并通过指定 arrayname.method() 获取方法的输出。
- 长度属性 –> 如果想知道数组中元素的数量,可以使用 length 属性。
- 原型属性 –> 如果您想添加新的属性和方法,您可以使用prototype属性。
- 逆向方法 –> 您可以使用反向方法反转数组中项目的顺序。
- 排序方法 您可以使用 sort 方法对数组中的元素进行排序。
- pop 方法 –> 您可以使用 pop 方法删除数组的最后一项。
- 转移法 您可以使用 shift 方法删除数组的第一个元素。
- 推送方法 –> 您可以添加一个值作为数组的最后一项。
下表对最常用的方法进行了分组,以便您可以一目了然地看到哪些方法会改变原始数组,哪些方法会返回新值。
| 付款方式 | 目的 | Returns & Exchanges | 更改原始数组 |
|---|---|---|---|
| 推() | 在末尾添加一个或多个项目。 | 新长度 | 是 |
| 流行音乐() | 移除最后一个项目 | 已移除项目 | 是 |
| 取消移位() | 在前面添加一个或多个项目 | 新长度 | 是 |
| 转移() | 移除第一个项目 | 已移除项目 | 是 |
| 拼接() | 在任意位置插入或删除项目 | 已移除项目的数组 | 是 |
| 种类() | 订购商品 | 已排序数组 | 是 |
| 撤销() | 颠倒物品顺序 | 反向数组 | 是 |
| 片() | 复制数组的一部分 | 新数组 | 没有 |
| 连接() | 合并两个或多个数组 | 新数组 | 没有 |
| 加入() | 将多个项目合并成一个字符串 | 串 | 没有 |
| 指数() | 找到一个值的位置 | 索引或 -1 | 没有 |
| 包括() | 测试某个值是否存在 | 对或错 | 没有 |
添加和删除元素
let fruits = ["apple", "banana"]; fruits.push("cherry"); // ["apple", "banana", "cherry"] fruits.unshift("mango"); // ["mango", "apple", "banana", "cherry"] fruits.pop(); // ["mango", "apple", "banana"] fruits.shift(); // ["apple", "banana"] // splice(startIndex, deleteCount, ...itemsToInsert) fruits.splice(1, 0, "kiwi"); // ["apple", "kiwi", "banana"] console.log(fruits);
搜索、复制和合并
let colors = ["red", "green", "blue", "green"]; console.log(colors.indexOf("green")); // 1 - first match only console.log(colors.lastIndexOf("green")); // 3 console.log(colors.includes("pink")); // false console.log(colors.slice(1, 3)); // ["green", "blue"] console.log(colors.join(" | ")); // red | green | blue | green console.log(colors.concat(["black"])); // new array, colors unchanged
迭代方法:forEach、map、filter 和 reduce
现代 Java脚本倾向于使用回调驱动的方法而不是手动索引循环,因为操作的意图直接在方法名称中说明。
const scores = [45, 72, 88, 31, 95]; scores.forEach(s => console.log(s)); // prints each score const doubled = scores.map(s => s * 2); // [90, 144, 176, 62, 190] const passed = scores.filter(s => s >= 50); // [72, 88, 95] const total = scores.reduce((sum, s) => sum + s, 0); // 331 const first = scores.find(s => s > 80); // 88 console.log(doubled, passed, total, first);
💡提示: 默认值 sort() 将元素转换为字符串,因此 [10, 9, 100].sort() 回报 [10, 100, 9]传递一个比较器,例如: sort((a, b) => a - b) 正确排序数字。
Java脚本数组示例及源文件 Code
以下脚本创建了一个学生数组,通过原型属性添加了一个自定义显示方法,然后依次演示了长度、排序、反转、弹出和压入操作。请自行尝试:
<html>
<head>
<title>Arrays!!!</title>
<script type="text/javascript">
var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth");
Array.prototype.displayItems=function(){
for (i=0;i<this.length;i++){
document.write(this[i] + "<br />");
}
}
document.write("students array<br />");
students.displayItems();
document.write("<br />The number of items in students array is " + students.length + "<br />");
document.write("<br />The SORTED students array<br />");
students.sort();
students.displayItems();
document.write("<br />The REVERSED students array<br />");
students.reverse();
students.displayItems();
document.write("<br />THE students array after REMOVING the LAST item<br />");
students.pop();
students.displayItems();
document.write("<br />THE students array after PUSH<br />");
students.push("New Stuff");
students.displayItems();
</script>
</head>
<body>
</body>
</html>
预期产量:
students array John Ann Aaron Edwin Elizabeth The number of items in students array is 5 The SORTED students array Aaron Ann Edwin Elizabeth John The REVERSED students array John Elizabeth Edwin Ann Aaron THE students array after REMOVING the LAST item John Elizabeth Edwin Ann THE students array after PUSH John Elizabeth Edwin Ann New Stuff
注意,sort 操作会将“Aaron”放在“Ann”之前,因为排序是通过比较字母的字符编码来区分大小写的。还要注意,pop 操作会从反转后的数组中移除“Aaron”,这证实了 sort 和 reverse 操作都会对原始数组进行原地修改。
如何循环遍历 Java脚本数组
四个厕所ping 有多种循环风格可供选择,每种风格都适用于不同的场景。经典的 for 循环可以完全控制索引,for…of 循环直接读取值,forEach 循环清晰地表达意图,而 for…in 循环则应该保留用于对象属性。
const cities = ["Paris", "Tokyo", "Cairo"]; // 1. Classic for loop - index is available for (let i = 0; i < cities.length; i++) { console.log(i + ": " + cities[i]); } // 2. for...of loop - value is available for (const city of cities) { console.log(city); } // 3. forEach with index parameter cities.forEach((city, index) => console.log(index, city)); // 4. entries() when both index and value are needed for (const [index, city] of cities.entries()) { console.log(index, city); }
关于循环语法(包括 while 和 do…while)的更深入探讨,请参阅文章。 如何在循环中使用 Java脚本.
多维数组 Java脚本
Java脚本没有专门的矩阵类型。网格本质上就是一个数组,其元素本身也是数组,需要使用两个索引表达式才能访问单个单元格。
const matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; console.log(matrix[1][2]); // 6 - row index 1, column index 2 for (const row of matrix) { console.log(row.join(" ")); } // flatten a nested array into a single level console.log(matrix.flat()); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
输出:
6 1 2 3 4 5 6 7 8 9 [1, 2, 3, 4, 5, 6, 7, 8, 9]
从表单验证到数据渲染,几乎所有实际脚本中都会用到数组。继续…… 实际 Java脚本代码示例, 审查 Java脚本字符串 用于文本处理,并阅读相关内容 内部和外部 Java脚本 决定这些脚本在页面中的位置。希望对数组内容进行静态类型检查的开发者可以继续进行下一步。 TypeScript 教程.
