我有一个数组[1, 5, 20, 17, 6, 12, 13, 20, 1, 14, 20]。
每当数组的元素等于 20 时,我想像这样在两边用星号包装它[1, 5, *20*, 17, 6, 12, 13, *20*, 1 , 14, *20*]。
我怎样才能做到这一点?
我有一个数组[1, 5, 20, 17, 6, 12, 13, 20, 1, 14, 20]。
每当数组的元素等于 20 时,我想像这样在两边用星号包装它[1, 5, *20*, 17, 6, 12, 13, *20*, 1 , 14, *20*]。
我怎样才能做到这一点?
您可以使用map
let arr = [1, 5, 20, 17, 6, 12, 13, 20, 1, 14, 20]
let result = arr.map(o => o === 20 ? '*20*' : o);
console.log(result);
文档:地图()
您可以使用 Arrays forEach来修改数组的元素。elem是每个元素,i是各自的索引。我们forEach用来修改现有的数组。既然这是你想要的..
let arr = [1, 5, 20, 17, 6, 12, 13, 20, 1, 14, 20]
arr.forEach((elem, i) => {
if (elem === 20) {
arr[i] = "*20*"
}
})
console.log(arr)
function rollDice(max, times, bonus) {
var rolls = [1, 5, 20, 17, 6, 12, 13, 20, 1, 14, 20];
rolls.forEach((elem, i) => { if (elem === 20) { rolls[i] = "twenty" } });
for (var i = 0; times > i; i++)
{
max = Math.floor(max);
rolls.push(Math.floor(Math.random() * max) + 1 | + parseInt(bonus));
}
console.log(rolls);
}
rollDice(20, 5);
您遇到的问题是您需要将整数转换为字符串。JavaScript 有几种方法可以在幕后巧妙地做到这一点,但如果您仍然对此有所了解,最好明确说明您从什么数据类型(整数)开始,以及您希望以什么数据类型结束(字符串)。
您转换数组,“映射”每个项目,将其转换为字符串,然后如果字符串匹配“20”,则添加星号。
const start_array = [1, 5, 20, 17, 6, 12, 13, 20, 1, 14, 20];
const new_array = start_array.map((integer) => {
let number_string = integer.toString();
if (number_string === "20") {
number_string = "*" + number_string + "*";
}
return number_string;
})
console.log(new_array);