在 JavaScript 中,如果想要给数组添加某个元素,我们可以使用以下 2 种方法。
- unshift()
- push()
JavaScript 在数组开头添加元素
在 JavaScript 中,我们可以使用 unshift() 方法在数组的 “开头” 添加一个或多个元素。
语法:
arr.unshift(value1, value2, ..., valueN)说明:
value1、value2、...、valueN 可以是任意类型的值。
注意:
- unshift() 方法会改变原数组。
- unshift() 方法会返回一个值,不过它的返回值并非添加后的数组,而是添加后的数组长度。
示例 1:unshift() 添加一个元素
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
const result = arr.unshift("blue");
console.log(arr);
console.log(result);
</script>
</body>
</html>运行结果如下。
["blue", "red", "green"]
3分析:
unshift() 方法会改变原数组,然后返回的是添加后的数组长度。如果你不需要用到添加后的数组长度,也可以不使用变量来接收它的返回值,比如:
const arr = ["red", "green"];
arr.unshift("blue");
console.log(arr);示例 2:unshift() 添加多个元素
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
arr.unshift("blue", "orange");
console.log(arr);
</script>
</body>
</html>运行结果如下。
["blue", "orange", "red", "green"]分析:
unshift() 方法可以一次性在数组开头添加多个元素。
示例 3:unshift() 添加的元素是数组
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
arr.unshift(["blue", "orange"]);
console.log(arr);
</script>
</body>
</html>运行结果如下。
[["blue", "orange"], "red", "green"]分析:
当 unshift() 添加的值是一个数组时,此时该数组会作为一个元素添加进去,而不是合并两个数组。
示例 4:unshift() 添加的元素是对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
const obj = {name: "Jack", age: 20};
arr.unshift(obj);
console.log(arr);
</script>
</body>
</html>运行结果如下。
[{"name": "Jack", "age": 20}, "red", "green"]分析:
如果 unshift() 添加的值是一个对象,那么该对象同样会作为一个元素添加进去。至于对象的使用,我们在后面 “JavaScript 对象” 一节中会详细介绍。
JavaScript 在数组结尾添加元素
在 JavaScript 中,我们可以使用 push() 方法在数组的 “末尾” 添加一个或多个元素。
语法:
arr.push(value1, value2, ..., valueN)说明:
value1、value2、...、valueN 可以是任意类型的值。
注意:
- push() 方法会改变原数组。
- push() 方法会返回一个值,不过它的返回值并非添加后的数组,而是添加后的数组长度。
示例 5:push() 添加一个元素
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
const result = arr.push("blue");
console.log(arr);
console.log(result);
</script>
</body>
</html>运行结果如下。
["red", "green", "blue"]
3分析:
从这个例子可以看出,push() 方法会改变原数组,然后返回的是添加后的数组长度。如果你不需要用到添加后的数组长度,也可以不使用变量来接收它的返回值,比如:
const arr = ["red", "green"];
arr.push("blue");
console.log(arr);示例 6:push() 添加多个元素
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
arr.push("blue", "orange");
console.log(arr);
</script>
</body>
</html>运行结果如下。
["red", "green", "blue", "orange"]分析:
push() 方法可以一次性在数组末尾添加多个元素。
示例 7:push() 添加的元素是数组
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
arr.push(["blue", "orange"]);
console.log(arr);
</script>
</body>
</html>运行结果如下。
["red", "green", ["blue", "orange"]]分析:
当 push() 的参数是一个数组时,此时该数组会作为一个元素添加进去。
示例 8:push() 添加的元素是对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const arr = ["red", "green"];
const obj = {name: "Jack", age: 20};
arr.push(obj);
console.log(arr);
</script>
</body>
</html>运行结果如下。
["red", "green", {"name": "Jack", "age": 20}]分析:
如果 push() 添加的值是一个对象,那么该对象同样会作为一个元素添加进去。
