Как отразить методы массивов, не используя из Flashcards
Методы массива
push - мутирующий массив
function ItPush (arr, …params){
for (i = 0, i<params.length , i++){
arr[arr.length] = params[i]
}
return arr.length
}
pop - мутирующий массив
function ItPop (arr) {
if (arr.length) {
lastNum = arr[arr.length - 1]
arr.length = arr.length -1
return lastNum
}
return undefined
}
shift - мутирующий массив
function ItShift (arr) {
if (!arr.length) {
return undefined
}
const firstEl = arr[0]
for (i = 1, i < arr.length, i++){
arr[ i - 1] = arr[ i ]
}
arr.length = arr.length -1
return firstEl
}
console.log(itShift(arr))
console.log(arr)
unshift - мутирующий массив
function itUnShift (arr, …params) {
for (let i = arr.length - 1, i >=0, i–){
arr[i + params.length] = arr[i]
}
for (let j = 0, j < params.length, j++) {
arr[j] = params [j]
}
return arr.length
}
console.log(itUnshift(arr, 1,2,3));
console.log(arr)
reverse
function itReverse(array) {
const copy = […array]
for (let i = copy.length - 1, i >=0, i–){
array[copy.length -1 -i] = copy [i]
}
return array
}
function itReverse(array) {
for (let i = 0, i < array.length/2, i++){
const temp = array[i]
array[i] = array[array.length - 1 - i]
array[array.length -1 - i] = temp
}
return array
}
indexOf - не мутирует
function itIndexOf(arr, el, startIndex = 0) {
for (let i = startIndex; i < arr.length; i++) {
if (el === array[i]) {
return i
}
}
return -1
}
console.log(itIndexOf(arr, 3))
console.log(arr[5])
find
const number = [1,2,3,4,5,6,7]
function itFind(arr, callback) {
let result = undefined
for (let i = 0; i < array.length; i++){
if(callback(array[i]) === true {
result = array[i]
breack
}
}
return result
}
function chckDividToThree(num) {
return !(num % 3)}
console.log(itFind(number, checkDividToThree))