[英]Javascript - Replace multiple elements in an array using index
Consider following array in Javascript:考虑以下 Javascript 数组:
var array1 = ['S', 'T', 'A', 'C', 'K', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W'];
Now I want to replace all the elements at once from index 3 to 9 in following way:现在我想通过以下方式一次替换索引 3 到 9 中的所有元素:
array1 = ['S', 'T', 'A', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'L', 'O', 'W'];
Is it possible to achieve in javascript ?是否可以在 javascript 中实现?
Note : I want to perform following operation using array only注意:我只想使用数组执行以下操作
Use Array.fill()
使用
Array.fill()
var array1 = ['S', 'T', 'A', 'C', 'K', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W']; array1.fill('X', 3, 10) console.log(array1)
Use array splice() method使用数组 splice() 方法
var array1= ['S', 'T', 'A', 'C', 'K', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W']; // At position 3, delete 7 and add 7 elements: array1.splice(3, 7, "X","X","X","X","X","X","X"); console.log(array1);
One way is with Array.prototype.map :一种方法是使用Array.prototype.map :
This loops through every index of the array, and if the index is between 3 and 9 (inclusive), set it to 'X', otherwise keep it as the original chr (character)这会循环遍历数组的每个索引,如果索引在 3 到 9(含)之间,则将其设置为 'X',否则将其保留为原始 chr(字符)
var array1 = ['S', 'T', 'A', 'C', 'K', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W']; var array2 = array1.map((chr, idx) => 3 <= idx && idx <= 9 ? 'X' : chr); console.log(array2);
It sure does.确实如此。
const arr = ['a', 'b', 'c', 'd', 'e']
function replaceWithX(start, end) {
for (let i = start; i <= end; i++) {
arr[i] = 'x'
}
}
replaceWithX(1, 3)
console.log(arr) // ["a", "x", "x", "x", "e"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.