curriculum/challenges/english/blocks/rosetta-code-challenges/596e457071c35c882915b3e4.md
A list is an ordered set of values that may contain duplicates. Here is an example:
const list = [['AA', 'BB', 'CC'], ['AA', 'ACB', 'AA'], [], ['AA']];
Given a list of arbitrarily many strings, implement a function for each of the following conditions:
<ul> <li>test if they are all lexically equal</li> <li>test if every string is lexically less than the one after it (i.e. whether the list is in strict ascending order)</li> </ul>const testCases = [['AA', 'AA', 'AA', 'AA'], ['AA', 'ACB', 'BB', 'CC'], [], ['AA'], ['BB', 'AA']];
allEqual should be a function.
assert(typeof allEqual === 'function');
azSorted should be a function.
assert(typeof azSorted === 'function');
allEqual(["AA", "AA", "AA", "AA"]) should return true.
assert(allEqual(testCases[0]));
azSorted(["AA", "AA", "AA", "AA"]) should return false.
assert(!azSorted(testCases[0]));
allEqual(["AA", "ACB", "BB", "CC"]) should return false.
assert(!allEqual(testCases[1]));
azSorted(["AA", "ACB", "BB", "CC"]) should return true.
assert(azSorted(testCases[1]));
allEqual([]) should return true.
assert(allEqual(testCases[2]));
azSorted([]) should return true.
assert(azSorted(testCases[2]));
allEqual(["AA"]) should return true.
assert(allEqual(testCases[3]));
azSorted(["AA"]) should return true.
assert(azSorted(testCases[3]));
allEqual(["BB", "AA"]) should return false.
assert(!allEqual(testCases[4]));
azSorted(["BB", "AA"]) should return false.
assert(!azSorted(testCases[4]));
function allEqual(arr) {
return true;
}
function azSorted(arr) {
return true;
}
function allEqual(a) {
let out = true;
let i = 0;
while (++i < a.length) {
out = out && (a[i - 1] === a[i]);
} return out;
}
function azSorted(a) {
let out = true;
let i = 0;
while (++i < a.length) {
out = out && (a[i - 1] < a[i]);
} return out;
}