想要使用使用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
网友评论文明上网理性发言 已有0人参与
发表评论: