Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Clear&Readable solution in Clear category for [old] Zigzag Array by SaintDron
"use strict";
function createZigzag(rows, cols, s = 1) {
let result = [];
for (let r = 0; r < rows; r++) {
let row = [];
for (let c = 0; c < cols; c++) {
row.push(s++);
}
result.push( (r % 2) ? row.reverse() : row );
}
return result;
}
var assert = require('assert');
if (!global.is_checking) {
console.log('Example:')
console.log(createZigzag(3, 3, 5))
// These "asserts" are used for self-checking and not for an auto-testing
assert.deepEqual(createZigzag(3, 5), [
[1,2,3,4,5],
[10,9,8,7,6],
[11,12,13,14,15]
])
assert.deepEqual(createZigzag(5, 1), [
[1],
[2],
[3],
[4],
[5]
])
assert.deepEqual(createZigzag(3, 3, 5), [
[5, 6, 7],
[10, 9, 8],
[11, 12, 13]
])
// Edge cases
assert.deepEqual(createZigzag(0, 3), [])
assert.deepEqual(createZigzag(3, 0), [[], [], []])
assert.deepEqual(createZigzag(0, 0), [])
console.log("Coding complete? Click 'Check' to earn cool rewards!");
}
Oct. 14, 2018