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