3.2 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.2 KiB
		
	
	
	
	
	
	
	
title, id, challengeType
| title | id | challengeType | 
|---|---|---|
| Compare a list of strings | 596e457071c35c882915b3e4 | 5 | 
Description
Given a list of arbitrarily many strings, implement a function for each of the following conditions:
test if they are all lexically equal test if every string is lexically less than the one after it (i.e. whether the list is in strict ascending order)Instructions
Tests
tests:
  - text: <code>allEqual</code> is a function.
    testString: 'assert(typeof allEqual === "function", "<code>allEqual</code> is a function.");'
  - text: <code>azSorted</code> is a function.
    testString: 'assert(typeof azSorted === "function", "<code>azSorted</code> is a function.");'
  - text: '<code>allEqual(["AA", "AA", "AA", "AA"])</code> returns true.'
    testString: 'assert(allEqual(testCases[0]), "<code>allEqual(["AA", "AA", "AA", "AA"])</code> returns true.");'
  - text: '<code>azSorted(["AA", "AA", "AA", "AA"])</code> returns false.'
    testString: 'assert(!azSorted(testCases[0]), "<code>azSorted(["AA", "AA", "AA", "AA"])</code> returns false.");'
  - text: '<code>allEqual(["AA", "ACB", "BB", "CC"])</code> returns false.'
    testString: 'assert(!allEqual(testCases[1]), "<code>allEqual(["AA", "ACB", "BB", "CC"])</code> returns false.");'
  - text: '<code>azSorted(["AA", "ACB", "BB", "CC"])</code> returns true.'
    testString: 'assert(azSorted(testCases[1]), "<code>azSorted(["AA", "ACB", "BB", "CC"])</code> returns true.");'
  - text: '<code>allEqual([])</code> returns true.'
    testString: 'assert(allEqual(testCases[2]), "<code>allEqual([])</code> returns true.");'
  - text: '<code>azSorted([])</code> returns true.'
    testString: 'assert(azSorted(testCases[2]), "<code>azSorted([])</code> returns true.");'
  - text: '<code>allEqual(["AA"])</code> returns true.'
    testString: 'assert(allEqual(testCases[3]), "<code>allEqual(["AA"])</code> returns true.");'
  - text: '<code>azSorted(["AA"])</code> returns true.'
    testString: 'assert(azSorted(testCases[3]), "<code>azSorted(["AA"])</code> returns true.");'
  - text: '<code>allEqual(["BB", "AA"])</code> returns false.'
    testString: 'assert(!allEqual(testCases[4]), "<code>allEqual(["BB", "AA"])</code> returns false.");'
  - text: '<code>azSorted(["BB", "AA"])</code> returns false.'
    testString: 'assert(!azSorted(testCases[4]), "<code>azSorted(["BB", "AA"])</code> returns false.");'
Challenge Seed
function allEqual (arr) {
  // Good luck!
  return true;
}
function azSorted (arr) {
  // Good luck!
  return true;
}
After Test
console.info('after the test');
Solution
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;
}