Can someone explain to me why the answer isn’t? I solved it by only by fiddling with my syntax and not truly understanding it. I initially thought this was the answer
isSpam(messageInput.value) ? result.textContent = 'Oh no! This looks like a spam message.': result.textContent ='This message does not seem to contain any spam.'; messageInput.value = "";
Hi @raven1177,
Your question has thoughtfulness into it and I will try to give you my opinion in equal kind.
There is kind of a hidden discrepancy between the requested requirements and the validation process that the learning course afford. What do I mean? If you read and try to comprehend the question, to a human is kind of open to interpretation which makes you think that the implementation is flexible as long as the result matches the requirement. But the validation process is primitive and rigid, which does not accommodate beyond matching an exact string entry. The opposite would be match behavior result.
All this is just to explain that not necessarily, not passing mean that what you understood was wrong, but rather that validation process does not care about anything else but how you entered the statement.
The way you crafted your original statement your mind was translating what you were reading in the requirement and used the ternary condition operator to do what it can be called side effect: assign a value to a variable or assign another different value to the same variable. But the common use of that ternary operator is to return a value that gets assigned to a variable and that’s what the statement validation wanted.
In this case, I’m all for not allowing the posted code, even if it did produce the correct result. I think it is better to force the correct use of the ternary than allow incorrect use.
It is true that a lot of the challenges are using regex for testing and as such the solutions are not very flexible, which is somewhat unfortunate.
@lasjorg I appreciate your opinion.
I wonder if given the constrains of validation and the actual intention to teach or promote certain learning, we should not be more mindful on how we craft the requirement statements and how normal human ambiguous expressions can affect that which we are trying to teach. I mean a simple indication of the expected format at times could accelerate real learning and reduce time guessing and uncertainty that you get it. It is just a thought, but I do not want to hijack the OP thread.
I would agree that when teaching or “promoting” specific syntax, as opposed to just testing the outcome, the challenge should make an effort to guide the camper.
I don’t think this test was written with that in mind. I think it is using a regex for the tests and it just doesn’t account for all valid code.
We usually prefer all valid code to pass but if/when we do enforce specific syntax, that should be part of the challenge text and hints.
In this case, I would prefer we enforced the “correct” syntax and guided the camper properly.