2018-10-04 14:37:37 +01:00
---
id: 596e457071c35c882915b3e4
2020-11-27 19:02:05 +01:00
title: Compare a list of strings
2018-10-04 14:37:37 +01:00
challengeType: 5
2019-08-05 09:17:33 -07:00
forumTopicId: 302235
2021-01-13 03:31:00 +01:00
dashedName: compare-a-list-of-strings
2018-10-04 14:37:37 +01:00
---
2020-11-27 19:02:05 +01:00
# --description--
Given a [list ](https://en.wikipedia.org/wiki/List_(abstract_data_type ) "wp: List\_(abstract_data_type)") of arbitrarily many strings, implement a function for each of the following conditions:
2019-02-25 13:36:09 +09:00
< 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 >
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
# --hints--
`allEqual` should be a function.
```js
assert(typeof allEqual === 'function');
2018-10-04 14:37:37 +01:00
```
2020-11-27 19:02:05 +01:00
`azSorted` should be a function.
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
```js
assert(typeof azSorted === 'function');
```
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
`allEqual(["AA", "AA", "AA", "AA"])` should return true.
2018-10-04 14:37:37 +01:00
```js
2020-11-27 19:02:05 +01:00
assert(allEqual(testCases[0]));
```
2020-09-15 09:57:40 -07:00
2020-11-27 19:02:05 +01:00
`azSorted(["AA", "AA", "AA", "AA"])` should return false.
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
```js
assert(!azSorted(testCases[0]));
```
2020-09-15 09:57:40 -07:00
2020-11-27 19:02:05 +01:00
`allEqual(["AA", "ACB", "BB", "CC"])` should return false.
```js
assert(!allEqual(testCases[1]));
2018-10-04 14:37:37 +01:00
```
2020-11-27 19:02:05 +01:00
`azSorted(["AA", "ACB", "BB", "CC"])` should return true.
```js
assert(azSorted(testCases[1]));
```
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
`allEqual([])` should return true.
```js
assert(allEqual(testCases[2]));
```
`azSorted([])` should return true.
```js
assert(azSorted(testCases[2]));
```
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
`allEqual(["AA"])` should return true.
```js
assert(allEqual(testCases[3]));
```
`azSorted(["AA"])` should return true.
```js
assert(azSorted(testCases[3]));
```
`allEqual(["BB", "AA"])` should return false.
```js
assert(!allEqual(testCases[4]));
```
`azSorted(["BB", "AA"])` should return false.
```js
assert(!azSorted(testCases[4]));
```
# --seed--
## --after-user-code--
2018-10-04 14:37:37 +01:00
```js
2018-10-20 21:02:47 +03:00
const testCases = [['AA', 'AA', 'AA', 'AA'], ['AA', 'ACB', 'BB', 'CC'], [], ['AA'], ['BB', 'AA']];
2018-10-04 14:37:37 +01:00
```
2020-11-27 19:02:05 +01:00
## --seed-contents--
```js
function allEqual(arr) {
return true;
}
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
function azSorted(arr) {
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
return true;
}
```
2018-10-04 14:37:37 +01:00
2020-11-27 19:02:05 +01:00
# --solutions--
2018-10-04 14:37:37 +01:00
```js
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;
}
```