Как обнулить одномерный массив

87
03 марта 2022, 06:00

Вот часть моего кода, он срабатывает по кнопке и делает некоторые вычисления. Как можно обнулить (очистить) массив, что бы не создавались дополнительные пустые ячейки после повторного нажатия по кнопке. Нужно что бы содержимое обновлялось а не добавлялось повторно.

            vect = [];
            for (let j = 0; j < row; j++) {
                min = matr[0][j]
                for (let i = 0; i < col; i++) {
                    if (matr[i][j] < min)
                    min = matr[i][j];
                }
                vect[n] = min;
                n += 1;
            }
Answer 1

Можно сделать массив полностью пустым:

vect = [];

Для этого также есть другие интересные варианты.

Если нужно сохранить длину массива, то можно пройтись по всем элементам и поставить нулевые значения:

for (let i = 0; i < vect.length; i++) {
    vect[i] = 0;
}
Answer 2
как очистить массив, и сохранить ссылку на объект ?
  • length = 0 - установить длинну массива = 0
    в большинстве случаев этого может быть достаточно, но лучше с delete

  • delete obj[key] - удалить не только значение но и ключ.
    проверить можно с помощью Object.keys(obj)

в примере ниже за очистку массива отвечает ф-я clearArray(arr), остальной код для иллюстрации

const log = arr => console.log(`arr:${JSON.stringify(arr)}`,`length:${arr.length}`) 
const genArr = length => Array.from({length}, (q, i) => i) 
 
const arr = genArr(5) 
 
log(arr) 
 
console.log(arr === clearArray(arr)) 
 
log(arr) 
 
function clearArray(arr) { 
  //-- 
  arr.forEach((q, i, arr) => {delete arr[i];}) 
  arr.length = 0 
  //-- 
  return arr; 
}

READ ALSO
Как перенести все элементы управления на bitmap? C#

Как перенести все элементы управления на bitmap? C#

Проблема следующая: Я считываю все контролы на форме, затем перевожу их в картинкуДело в том, если контрол лежит на контроле, пример: На picturebox...

87
Привязка данных в Xamarin.Forms

Привязка данных в Xamarin.Forms

В приложении на XamarinForms необходимо сначала получить данные с сервера, а потом используя их нарисовать FlexLayout

95
Как &quot;за кулисами&quot; реализуется интернет-поток?

Как "за кулисами" реализуется интернет-поток?

Ковыряя ASPNET проект я задумался, а как за кулисами реализуются интернет-потоки

98
Как создать ассоциативный массив в C#?

Как создать ассоциативный массив в C#?

Как можно создать ассоциативный массив в c#? В других языках например как js и php это делается легко, но в С# так не работает

97