Javascript массив удалить все элементы

Array

Массив ( Array ) в JavaScript является глобальным объектом, который используется для создания массивов; которые представляют собой высокоуровневые спископодобные объекты.

Создание массива

var fruits = ['Яблоко', 'Банан']; console.log(fruits.length); // 2 

Доступ к элементу массива по индексу

var first = fruits[0]; // Яблоко var last = fruits[fruits.length - 1]; // Банан 

Итерирование по массиву

.forEach(function(item, index, array)  console.log(item, index); >); // Яблоко 0 // Банан 1 

Добавление элемента в конец массива

var newLength = fruits.push('Апельсин'); // ["Яблоко", "Банан", "Апельсин"] 

Удаление последнего элемента массива

var last = fruits.pop(); // удалим Апельсин (из конца) // ["Яблоко", "Банан"]; 

Удаление первого элемента массива

var first = fruits.shift(); // удалим Яблоко (из начала) // ["Банан"]; 

Добавление элемента в начало массива

var newLength = fruits.unshift('Клубника') // добавляет в начало // ["Клубника", "Банан"]; 

Поиск номера элемента в массиве

.push('Манго'); // ["Клубника", "Банан", "Манго"] var pos = fruits.indexOf('Банан'); // 1 

Удаление элемента с определённым индексом

var removedItem = fruits.splice(pos, 1); // так можно удалить элемент // ["Клубника", "Манго"] 

Удаление нескольких элементов, начиная с определённого индекса

var vegetables = ['Капуста', 'Репа', 'Редиска', 'Морковка']; console.log(vegetables); // ["Капуста", "Репа", "Редиска", "Морковка"] var pos = 1, n = 2; var removedItems = vegetables.splice(pos, n); // так можно удалить элементы, n определяет количество элементов для удаления, // начиная с позиции(pos) и далее в направлении конца массива. console.log(vegetables); // ["Капуста", "Морковка"] (исходный массив изменён) console.log(removedItems); // ["Репа", "Редиска"] 

Создание копии массива

var shallowCopy = fruits.slice(); // так можно создать копию массива // ["Клубника", "Манго"] 

Синтаксис

[element0, element1, . elementN] new Array(element0, element1[, . [, elementN]]) new Array(arrayLength)

Массив в JavaScript инициализируется с помощью переданных элементов, за исключением случая, когда в конструктор Array передаётся один аргумент и этот аргумент является числом (см. ниже). Стоит обратить внимание, что этот особый случай применяется только к JavaScript-массивам, создаваемым с помощью конструктора Array , а не к литеральным массивам, создаваемым с использованием скобочного синтаксиса.

Если конструктору Array передаётся единственный аргумент, являющийся целым числом в диапазоне от 0 до 232-1 (включительно), будет возвращён новый пустой JavaScript-массив, длина которого установится в это число (примечание: это означает массив, содержащий arrayLength пустых ячеек, а не ячеек со значениями undefined ). Если аргументом будет любое другое число, возникнет исключение RangeError .

Описание

Массивы являются спископодобными объектами, чьи прототипы содержат методы для операций обхода и изменения массива. Ни размер JavaScript-массива, ни типы его элементов не являются фиксированными. Поскольку размер массива может увеличиваться и уменьшаться в любое время, то нет гарантии, что массив окажется плотным. То есть, при работе с массивом может возникнуть ситуация, что элемент массива, к которому вы обратитесь, будет пустым и вернёт undefined . В целом, это удобная характеристика; но если эта особенность массива не желательна в вашем специфическом случае, вы можете рассмотреть возможность использования типизированных массивов.

Некоторые полагают, что вы не должны использовать массив в качестве ассоциативного массива. В любом случае, вместо него вы можете использовать простые объекты , хотя у них есть и свои подводные камни. Смотрите пост Легковесные JavaScript-словари с произвольными ключами(англ.) в качестве примера.

Доступ к элементам массива

Массивы в JavaScript индексируются с нуля: первый элемент массива имеет индекс, равный 0 , а индекс последнего элемента равен значению свойства массива length минус 1.

var arr = ['первый элемент', 'второй элемент', 'последний элемент']; console.log(arr[0]); // напечатает 'первый элемент' console.log(arr[1]); // напечатает 'второй элемент' console.log(arr[arr.length - 1]); // напечатает 'последний элемент' 

Элементы массива являются свойствами, точно такими же, как, например, свойство toString , однако попытка получить элемент массива по имени его свойства приведёт к синтаксической ошибке, поскольку имя свойства не является допустимым именем JavaScript:

.log(arr.0); // синтаксическая ошибка 

Это не особенность массивов или их свойств. В JavaScript к свойствам, начинающимся с цифры, невозможно обратиться посредством точечной нотации; к ним можно обратиться только с помощью скобочной нотации. Например, если у вас есть объект со свойством, названным ‘3d’ , вы сможете обратиться к нему только посредством скобочной нотации. Примеры:

var years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]; console.log(years.0); // синтаксическая ошибка console.log(years[0]); // работает как положено 
.3d.setTexture(model, 'character.png'); // синтаксическая ошибка renderer['3d'].setTexture(model, 'character.png'); // работает как положено 

Обратите внимание, что во втором примере 3d заключено в кавычки: ‘3d’ . Индексы можно заключать в кавычки (например years[‘2’] вместо years[2] ), но в этом нет необходимости. Значение 2 в выражении years[2] будет неявно приведено к строке движком JavaScript через метод преобразования toString . Именно по этой причине ключи ‘2’ и ’02’ будут ссылаться на два разных элемента в объекте years и следующий пример выведет true :

Аналогично, к свойствам объекта, являющимся зарезервированными словами(!) можно получить доступ только посредством скобочной нотации:

var promise =  'var' : 'text', 'array': [1, 2, 3, 4] >; console.log(promise['array']); 

Взаимосвязь свойства length с числовыми свойствами

Свойство массивов length взаимосвязано с числовыми свойствами. Некоторые встроенные методы массива (например, join , slice , indexOf и т.д.) учитывают значение свойства length при своём вызове. Другие методы (например, push , splice и т.д.) в результате своей работы также обновляют свойство length массива.

var fruits = []; fruits.push('банан', 'яблоко', 'персик'); console.log(fruits.length); // 3 

При установке свойства в массиве, если свойство имеет действительный индекс и этот индекс выходит за пределы текущих границ массива, движок соответствующим образом обновит свойство length :

[5] = 'манго'; console.log(fruits[5]); // 'манго' console.log(Object.keys(fruits)); // ['0', '1', '2', '5'] console.log(fruits.length); // 6 

Увеличиваем свойство length

.length = 10; console.log(Object.keys(fruits)); // ['0', '1', '2', '5'] console.log(fruits.length); // 10 

Однако, уменьшение свойства length приведёт к удалению элементов.

.length = 2; console.log(Object.keys(fruits)); // ['0', '1'] console.log(fruits.length); // 2 

Более подробно эта тема освещена на странице, посвящённой свойству Array.length .

Создание массива с использованием результата сопоставления

Результатом сопоставления регулярного выражения строке является JavaScript-массив. Этот массив имеет свойства и элементы, предоставляющие информацию о сопоставлении. Подобные массивы возвращаются методами RegExp.exec , String.match и String.replace . Чтобы было проще понять, откуда и какие появились свойства и элементы, посмотрите следующий пример и обратитесь к таблице ниже:

// Сопоставляется с одним символом d, за которым следует один // или более символов b, за которыми следует один символ d // Запоминаются сопоставившиеся символы b и следующий за ними символ d // Регистр игнорируется var myRe = /d(b+)(d)/i; var myArray = myRe.exec('cdbBdbsbz'); 

Свойства и элементы, возвращаемые из данного сопоставления, описаны ниже:

Свойство/Элемент Описание Пример
input Свойство только для чтения, отражающее оригинальную строку, с которой сопоставлялось регулярное выражение. cdbBdbsbz
index Свойство только для чтения, являющееся индексом (отсчёт начинается с нуля) в строке, с которого началось сопоставление. 1
[0] Элемент только для чтения, определяющий последние сопоставившиеся символы. dbBd
[1], . [n] Элементы только для чтения, определяющие сопоставившиеся подстроки, заключённые в круглые скобки, если те включены в регулярное выражение. Количество возможных подстрок не ограничено. [1]: bB [2]: d

Свойства

Значение свойства length конструктора массива равно 1.

Позволяет добавлять свойства ко всем объектам массива.

Методы

Создаёт новый экземпляр Array из массивоподобного или итерируемого объекта.

Возвращает true , если значение является массивом, иначе возвращает false .

Асинхронно наблюдает за изменениями в массиве, подобно методу Object.observe() для объектов. Метод предоставляет поток изменений в порядке их возникновения.

Создаёт новый экземпляр Array из любого количества аргументов, независимо от их количества или типа.

Экземпляры массива

Все экземпляры массива наследуются от Array.prototype . Изменения в объекте прототипа конструктора массива затронет все экземпляры Array .

Источник

How to Clear an Array in JavaScript

Clearing an array in JavaScript means removing all the elements in the array and leaving an empty array. Here’s 3 ways to clear out an array:

array.length = 0

The simplest solution is to assign the array’s length to the value of 0. The array length property is writable.

let array = [1, 2, 3, 4, 5]; array.length = 0; array; // []

array.splice(0, array.length)

A more verbose approach is to use the splice() method. This function will return a copy of the array before deleting the entries, which is helpful if you want to do a reassignment before clearing the array.

let array = [1, 2, 3, 4, 5]; let anotherArray = array.splice(0, array.length); anotherArray; // [1, 2, 3, 4, 5] array; // [] anotherArray === array; // false

array = []

If you want to avoid mutating the arrays in place for immutability, you can overwrite the array with an empty array [] .

let obj = < array: [1, 2, 3, 4, 5] >; obj = < . obj, array: [] >; obj.array.length; // 0

More Fundamentals Tutorials

Источник

How to Clear a JavaScript Array – JS Empty Array

Dillion Megida

Dillion Megida

How to Clear a JavaScript Array – JS Empty Array

There are multiple ways to empty an existing array in JavaScript. Emptying an array means removing all values from it.

In this article, I’ll show and explain two ways to clear an array.

1. How to Clear an Array by Modifying the Length Property

The length property of an array is readable and writeable.

When you read the property ( array.length ), it returns the length of the array, which is the number of values in it. When you write the property (that is, modify the array, like array.length = 10 ), it changes the length of the array and the number of values in it.

If the modified length is smaller than the original length, excess values will be removed. Here is what I mean:

const array = [1, 2, 3] array.length = 2 console.log(array) // [1, 2] 

Because the new length is smaller than the original, the excess value (3, in this case) is removed.

However, if the new length is larger than the original length, the array will be filled with undefined values to make up for the new length:

const array = [1, 2, 3] array.length = 4 console.log(array) // [1, 2, 3, undefined] 

Now that you understand how you can use the length property to modify an array, here’s how to empty an array:

const array = [1, 2, 3] array.length = 0 console.log(array) // [] 

With a length of 0, every value in the array gets removed, and the array becomes empty.

2. How to Empty an Array by Reassigning Values

You can reassign a new value (an empty array) to a variable that initially has a non-empty array assigned to it.

If you declare a variable with const , you cannot reassign it:

const array = [1, 2, 3] array = [] console.log(array) 

The above code will throw a TypeError: Assignment to constant variable error. But if you declared this variable with let , then you can reassign it with an empty array value:

let array = [1, 2, 3] array = [] console.log(array) // [] 

Now, you have the empty array.

Thank you for reading, and happy coding!

Dillion Megida

Dillion Megida

Developer Advocate and Content Creator passionate about sharing my knowledge on Tech. I simplify JavaScript / ReactJS / NodeJS / Frameworks / TypeScript / et al My YT channel: youtube.com/c/deeecode

If you read this far, tweet to the author to show them you care. Tweet a thanks

Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charity organization (United States Federal Tax Identification Number: 82-0779546)

Our mission: to help people learn to code for free. We accomplish this by creating thousands of videos, articles, and interactive coding lessons — all freely available to the public. We also have thousands of freeCodeCamp study groups around the world.

Donations to freeCodeCamp go toward our education initiatives, and help pay for servers, services, and staff.

Источник

Читайте также:  Python все символы русского алфавита
Оцените статью