@ -8,10 +8,12 @@ Return `0` if the `direction` changes or the `direction` if the last element is
|
||||
|
||||
```js
|
||||
const isSorted = arr => {
|
||||
const direction = arr[0] > arr[1] ? -1 : 1;
|
||||
for (let [i, val] of arr.entries())
|
||||
if (i === arr.length - 1) return direction;
|
||||
let direction = -(arr[0] - arr[1]);
|
||||
for (let [i, val] of arr.entries()) {
|
||||
direction = !direction ? -(arr[i - 1] - arr[i]) : direction;
|
||||
if (i === arr.length - 1) return !direction ? 0 : direction;
|
||||
else if ((val - arr[i + 1]) * direction > 0) return 0;
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
const flatten = (arr, depth = 1) =>
|
||||
depth !== 1
|
||||
? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v), [])
|
||||
: arr.reduce((a, v) => a.concat(v), []);
|
||||
arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);
|
||||
module.exports = flatten;
|
||||
@ -1,7 +1,9 @@
|
||||
const isSorted = arr => {
|
||||
const direction = arr[0] > arr[1] ? -1 : 1;
|
||||
for (let [i, val] of arr.entries())
|
||||
if (i === arr.length - 1) return direction;
|
||||
let direction = -(arr[0] - arr[1]);
|
||||
for (let [i, val] of arr.entries()) {
|
||||
direction = !direction ? -(arr[i - 1] - arr[i]) : direction;
|
||||
if (i === arr.length - 1) return !direction ? 0 : direction;
|
||||
else if ((val - arr[i + 1]) * direction > 0) return 0;
|
||||
}
|
||||
};
|
||||
module.exports = isSorted;
|
||||
@ -6,9 +6,17 @@ test('Testing isSorted', (t) => {
|
||||
//Please go to https://github.com/substack/tape
|
||||
t.true(typeof isSorted === 'function', 'isSorted is a Function');
|
||||
//t.deepEqual(isSorted(args..), 'Expected');
|
||||
t.equal(isSorted([0, 1, 2]), 1, 'Array is sorted in ascending order');
|
||||
t.equal(isSorted([0, 1, 2, 2]), 1, 'Array is sorted in ascending order');
|
||||
t.equal(isSorted([4, 3, 2]), -1, 'Array is sorted in descending order');
|
||||
t.equal(isSorted([4, 3, 5]), 0, 'Array is not sorted, direction changed in array');
|
||||
t.equal(isSorted([-4, -3, -2]), 1, 'Array is sorted in ascending order');
|
||||
t.equal(isSorted([0, 0, 1, 2]), 1, 'Array is sorted in ascending order');
|
||||
t.equal(isSorted([2, 1, 0]), -1, 'Array is sorted in descending order');
|
||||
t.equal(isSorted([2, 2, 1, 0]), -1, 'Array is sorted in descending order');
|
||||
t.equal(isSorted([-2, -3, -4]), -1, 'Array is sorted in descending order');
|
||||
t.equal(isSorted([2, 1, 0, 0]), -1, 'Array is sorted in descending order');
|
||||
t.equal(isSorted([]), undefined, 'Array is empty');
|
||||
t.equal(isSorted([1]), 0, 'Array is not sorted, direction changed in array');
|
||||
t.equal(isSorted([1, 2, 1]), 0, 'Array is not sorted, direction changed in array');
|
||||
//t.false(isSorted(args..), 'Expected');
|
||||
//t.throws(isSorted(args..), 'Expected');
|
||||
t.end();
|
||||
|
||||
@ -5,8 +5,8 @@ test('Testing pad', (t) => {
|
||||
//For more information on all the methods supported by tape
|
||||
//Please go to https://github.com/substack/tape
|
||||
t.true(typeof pad === 'function', 'pad is a Function');
|
||||
t.equal(pad('cat'), ' cat ', 'cat is padded on both sides');
|
||||
t.equal(pad('cat').length, 8, 'length of string is 8');
|
||||
t.equal(pad('cat',8), ' cat ', 'cat is padded on both sides');
|
||||
t.equal(pad('cat',8).length, 8, 'length of string is 8');
|
||||
t.equal(pad(String(42), 6, '0'), '004200', 'pads 42 with "0"');
|
||||
t.equal(pad('foobar', 3), 'foobar', 'does not truncates if string exceeds length');
|
||||
t.end();
|
||||
|
||||
2123
test/testlog
2123
test/testlog
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user