curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69b58ce40693f140c84c855a.md
Given an array of sequential integers, with multiples of 3 and 5 replaced, determine if it's a valid FizzBuzz sequence.
In a valid FizzBuzz sequence:
isFizzBuzz([1, 2, "Fizz", 4, "Buzz"]) should return true.
assert.isTrue(isFizzBuzz([1, 2, "Fizz", 4, "Buzz"]));
isFizzBuzz([13, 14, "FizzBuzz", 16, 17]) should return true.
assert.isTrue(isFizzBuzz([13, 14, "FizzBuzz", 16, 17]));
isFizzBuzz([1, 2, "Fizz", 4, 5]) should return false.
assert.isFalse(isFizzBuzz([1, 2, "Fizz", 4, 5]));
isFizzBuzz(["FizzBuzz", 16, 17, "Fizz", 19, "Buzz"]) should return true.
assert.isTrue(isFizzBuzz(["FizzBuzz", 16, 17, "Fizz", 19, "Buzz"]));
isFizzBuzz([1, 2, "Fizz", "Buzz", 5]) should return false.
assert.isFalse(isFizzBuzz([1, 2, "Fizz", "Buzz", 5]));
isFizzBuzz([97, 98, "Buzz", "Fizz", 101, "Fizz", 103]) should return false.
assert.isFalse(isFizzBuzz([97, 98, "Buzz", "Fizz", 101, "Fizz", 103]));
isFizzBuzz(["Fizz", "Buzz", 101, "Fizz", 103, 104, "FizzBuzz"]) should return true.
assert.isTrue(isFizzBuzz(["Fizz", "Buzz", 101, "Fizz", 103, 104, "FizzBuzz"]));
function isFizzBuzz(arr) {
return arr;
}
function isFizzBuzz(arr) {
let start = null;
for (let i = 0; i < arr.length; i++) {
if (typeof arr[i] === "number") {
start = arr[i] - i;
break;
}
}
if (start === null) return false;
for (let i = 0; i < arr.length; i++) {
const n = start + i;
const expected = n % 15 === 0 ? "FizzBuzz" : n % 3 === 0 ? "Fizz" : n % 5 === 0 ? "Buzz" : n;
if (arr[i] !== expected) return false;
}
return true;
}