Здравствуйте, ребята, сегодня я покажу вам, как вращать левый 1-мерный массив в JS.
Вращение будет зависеть от входных данных, например, 2 означает вращение.
Операция поворота влево массива размера n сдвигает каждый из элементов массива на 1 единицу влево.
Давайте начнем…
function rotateLeft(d, arr) {
// Write your code here
let newArray = []
if(d > arr.length){
return "Rotation value cannot be bigger than array length"
}
else{
for(let i=0;i<d;i++){
newArray.push(arr.shift(i))
}
let rotated = arr.concat(newArray)
return rotated
}
}
let array = [1,2,3,4,5,6]
let rotation = 2
console.log(rotateLeft(rotation,array))
Выход —
[ 3, 4, 5, 6, 1, 2 ]
Работа
- Внутри функции мы создали пустой массив, в котором будут храниться элементы после поворота.
- После этого мы задаем условие, в котором проверяем, превышает ли число оборотов длину массива или нет.
- В части else мы использовали цикл for до количества оборотов (исключение, то есть если значение оборота равно 4, то цикл for будет выполняться от 0-3).
- Внутри цикла мы удалили элемент из начального до значения вращения — 1 (так как индекс массива начинается с 0), а затем поместили эти удаленные элементы в созданный нами пустой массив.
- В итоге мы объединили исходный массив с массивом, содержащим удаленные элементы, которые появятся в конце.
Если у вас есть лучший подход или решение для этого кода, пожалуйста, укажите его в разделе комментариев.
СПАСИБО, ЧТО ПРОВЕРИЛИ ЭТОТ ПОСТ
Вы можете помочь мне, сделав пожертвование по ссылке ниже Спасибо👇👇👇 ^^
☕ —> https://www.buymeacoffee.com/waaduheck <—.
Также проверьте эти посты
https://dev.to/shubhamtiwari909/javascript-map-with-filter-2jgo
https://dev.to/shubhamtiwari909/e-quotes-3bng
https://dev.to/shubhamtiwari909/deploy-react-app-on-netlify-kl