array.slice
//The slice() method extracts a section of a string and returns
//it as a new string, without modifying the original string.
// same in array but you select elements not characters
const str = 'The quick brown fox jumps over the lazy dog.';
console.log(str.slice(31));
// expected output: "the lazy dog."
console.log(str.slice(4, 19));
// expected output: "quick brown fox"
console.log(str.slice(-4));
// expected output: "dog."
console.log(str.slice(-9, -5));
// expected output: "lazy"
console.log(str.slice(0, 2));
// expected output: "the"
// Up to and including the last index!!!
// Different for python.
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]
//The slice() method extracts a section of a string and returns
//it as a new string, without modifying the original string.
// same in array but you select elements not characters
const str = 'The quick brown fox jumps over the lazy dog.';
console.log(str.slice(31));
// expected output: "the lazy dog."
console.log(str.slice(4, 19));
// expected output: "quick brown fox"
console.log(str.slice(-4));
// expected output: "dog."
console.log(str.slice(-9, -5));
// expected output: "lazy"
function slice(array, start, end) {
let a = [];
let len = array.length;
if (start < 0) start = len + start;
if (end < 0) end = len + end;
if (start < end) {
for (let i = start; i < end; i++) {
a.push(array[i]);
}
} else if (start === undefined && end !== undefined) {
for (let i = end; i < len; i++) {
a.push(array[i]);
}
} else if (end === undefined && start !== undefined) {
for (let i = start; i < len; i++) {
a.push(array[i]);
}
} else if (start > end || start === end) {
return [];
}
return a;
}