想要使用使用 JavaScript 替换数组中的项, 要如何实现? 下面本篇文章就阿里给大家介绍一下使用 JavaScript 替换数组中项的方法, 希望对大家有所帮助.
方法 1: 使用 splice() 方法
avaScript 中的数组类型为我们提供了 splice() 方法, 该方法通过在所需索引处删除和插入新元素来帮助我们替换现有数组的项.
语法:
Array.splice(start_index, delete_count, value1, value2, value3, ...)
注意: Splice() 方法从包含 start_index 元素开始删除数组中的零个或多个元素, 并将这些元素替换为参数列表中指定的零个或多个元素.
Splice() 方法直接修改数组, 与类似命名的 Slice() 方法不同.
示例:
- <!DOCTYPE html>
- <HTML>
- <head>
- <meta charset="UTF-8">
- </head>
- <body>
- <p id="list">
- </p>
- <p id="result">
- </p>
- <script>
- // 初始化数组
- var list = ["January", "March", "April", "June"];
- document.getElementById("list").innerHTML = "原数组为:" + list;
- // 使用 splice() 方法拼接数组元素
- list.splice(1, 0, "February");
- // 预期输出 [January, February, March, April, June]
- // 在第一次拼接后之后对输出元素进行剪接
- list.splice(4, 1, "May");
- document.getElementById("result").innerHTML = "更新的数组元素:" + list;
- </script>
- </body>
- </HTML>
输出:
原数组为: January,March,April,June
更新的数组元素: January,February,March,April,May
方法 2: 使用数组的 map() 和 filter() 方法
JavaScript 中的 map() 方法通过调用父数组中每个元素上的特定函数来创建数组. arr.filter() 方法用于从给定数组中创建一个新数组, 该数组仅由满足参数函数设置的条件的给定数组中的元素组成.
语法:
ele[ele.map((x, i) => [i, x]).filter(x => x[1] == old_value)[0][0]] = new_value
示例:
- <!DOCTYPE HTML>
- <HTML>
- <head>
- <meta charset="UTF-8">
- </head>
- <body>
- <p id="list">
- </p>
- <p id="result">
- </p>
- <script>
- var ele = Array(10, 20, 300, 40, 50);
- document.getElementById("list").innerHTML = "原数组为:" + ele;
- ele[ele.map((x, i) = >[i, x]).filter(x = >x[1] == 300)[0][0]] = 30 document.getElementById("result").innerHTML = "更新的数组元素:" + ele;
- </script>
- </body>
- </HTML>
输出:
原数组为: 10,20,300,40,50
更新的数组元素: 10,20,30,40,50
来源: http://www.css88.com/qa/javascript/10471.html