Прочитал про метод slice на сайте Javascript
https://learn.javascript.ru/array-methods. Не правильно выводит массив.
Вот код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Тест</title>
</head>
<body>
<p id="result"></p>
<script>
let arr = ["Я", "изучаю", "JavaScript", "прямо", "сейчас", "помни", "это"];
arr.slice(-4);
for(let i = 0; i<arr.length; i++){
result.innerHTML += i + " - " + arr[i] + '<br>'}
</script>
</body>
</html>
arr.slice(-4);
Должна с 4-го элемента, считаем с конца массива, так как там минус 4. Это элемент прямо.
Должно вывести со слова прямо до конца все элементы. А выводит все элементы полностью.
Если изменить код на такой:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Тест</title>
</head>
<body>
<p id="result"></p>
<script>
let arr = ["Я", "изучаю", "JavaScript", "прямо", "сейчас", "помни", "это"];
let rez = arr.slice(-4);
for(let i = 0; i<rez.length; i++){
result.innerHTML += i + " - " + arr[i] + '<br>'}
</script>
</body>
</html>
произойдет вывод только первых 4-х элементов, но правило гласит если -4, с конца считаем 4 -ый элемент и выводим все элементы до конца, но выводится почему-то элементы сначала,
0 - Я
1 - изучаю
2 - JavaScript
3 - прямо
вместо такого вывода:
"прямо", "сейчас", "помни", "это"
Второй пример:
Если я захочу скопировать с какого-то элемента массива по какой-то. Например со 2-го элемента по 5.
И напишу такой код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Тест</title>
</head>
<body>
<p id="result"></p>
<script>
let arr = ["Я", "изучаю", "JavaScript", "прямо", "сейчас", "помни", "это"];
let rez = arr.slice(2,5);
for(let i = 0; i<rez.length; i++){
result.innerHTML += i + " - " + arr[i] + '<br>'}
</script>
</body>
</html>
arr.slice(2,5); Не происходит копирования, происходит вывод непонятно чего, а вывод такой в итоге:
0 - Я
1 - изучаю
2 - JavaScript
хотя я эти элементы не выбирал вообще, а выбирал эти:
"изучаю", "JavaScript", "прямо", "сейчас",