this is the log
console.log(duckShoot(4, 0.64, '|~~2~~~22~2~~22~2~~~~2~~~|'));
the output must be====>|~~X~~~X2~2~~22~2~~~~2~~~|
here the code i’ve try:
function duckShoot(ammo, aim, ducks) { let shot = Math.floor(ammo * aim) // console.log(shot); return ducks.replace (/2/g, "X") }
how to make /2/g
just replace certain repeating
i wanna make code above same function with this
function duckShoot(ammo, aim, ducks) {
let shot = Math.floor(ammo * aim) // console.log(shot); for (let i = 1; i <= shot; i++) { ducks = ducks.replace("2", "X"); } return ducks
}
Advertisement
Answer
let c = 2; // how many you want to replace '|~~2~~~22~2~~22~2~~~~2~~~|'.replaceAll('2', o => (c-- >= 0) ? 'X':o )
or you can keep the ‘old’ replace with the regex
'|~~2~~~22~2~~22~2~~~~2~~~|'.replace(/2/g, o => (c-- >= 0) ? 'X':o )
whereas
(o) => (c-- >= 0) ? 'X':o
is a simple function decreasing the counter and returning an ‘X’ or keep the o(riginal)