如何在JavaScript数组中替换随机项目
在JavaScript中使用不同的数组项替换随机项。让我们来看一个实例;数组为−
Var array=[m,n,o,p]
让我们选择两个随机项替换为a,而其他项保持不变。 如果m和n是随机选定的项,并在一个实例中删除了一个项,则数组将是−
Changed array=[a, a, o, p]
让我们深入了解如何在JavaScript数组中替换随机项。 要替换随机项,请使用random()和map()。
使用random() 方法
JavaScript方法random()用于返回落在指定范围内的伪随机或随机数字。由于random()函数是Math对象的静态函数,因此必须通过占位符对象Math调用该函数。
句法
以下是random()的语法−
Math.random();
使用map() 方法
map()方法在对每个元素执行给定函数之后,从调用数组的内容构建新数组。
句法
以下是map()的语法−
array.map(function(currentValue, index, arr), thisValue)
为了更好地理解如何在JavaScript中替换随机项,请查看以下示例。
实例
在以下示例中,我们运行脚本以替换JavaScript数组中的随机项。
<!DOCTYPE html>
<html>
<body>
<script>
function randomone(array, count) {
return function() {
const indices = new Set();
do {
indices.add(Math.floor(Math.random() * array.length));
} while (indices.size < count)
return array.map((v, i) => indices.has(i) ? 1 : v);
};
}
var myArray = ['A', 'B', 'C', 'D'],
newarray = randomone(myArray, 2);
document.write(...newarray());
</script>
</body>
</html>
当脚本执行时,它将生成一个输出,其中包含具有随机替换项值为“1”的数组。当用户执行脚本时,这将会改变。
实例
考虑以下示例,这里我们运行脚本以获取唯一的随机索引,并在索引上运行循环,使它们等于2。
<!DOCTYPE html>
<html>
<body>
<script>
var my_arr = ["ab", "bc", "cd", "de"];
const random = (num, count) => {
const set = new Set();
while (set.size < count) {
set.add(Math.floor(Math.random() * num));
}
return [...set];
};
const alter = (arr, count = 2) => {
const output = [...arr];
random(arr.length, count).forEach((index) => (output[index] = 2));
return output;
};
document.write(JSON.stringify(alter(my_arr)));
</script>
</body>
</html>
运行以上脚本,输出窗口将弹出,其中显示以2随机替换数组中的数组。
实例
执行下面的脚本可以观察如何替换 JavaScript 数组中的随机项。
<!DOCTYPE html>
<html>
<body>
<script>
function substituteRandomValue(names, size) {
return function() {
const index = new Set();
do {
index.add(Math.floor(Math.random() * names.length));
} while (index.size < size)
return names.map((value, counter) => index.has(counter) ? 'Adam' : value);
};
}
var names = ['John', 'David', 'Bob', 'Mike', 'Carol', 'Sam'],
result = substituteRandomValue(names, 2);
document.write(...result() + "<br>");
</script>
</body>
</html>
当脚本运行时,事件被触发,显示一个包含随机替换值的索引数组,每当用户执行脚本时,它会不断变化。