Настроить производительность массива - PullRequest
0 голосов
/ 29 мая 2020

У меня есть массив, к которому я обращаюсь к временам сервалов в моем коде. Содержимое моего массива выглядит примерно так:

... "-", "200", "Connection", "True", "-", "tcp", ...

Моя цель здесь - назначить эти vaules специальной переменной для каждого объекта в моем массиве. Прямо сейчас я понял это с помощью кода ниже:

if (myArray[2] != null) {
            if (myArray[2].length >= 2) {
                a = myArray[2];
        }
    } 

    if (myArray[5] != null && myArray[10] != null) {
        if (myArray[5].length >= 2 && myArray[10].length >= 2) {
            var b = myArray[5] + " " + myArray[10];
            bOutput = b;
        }
    }

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

Поскольку у меня проблемы с производительностью, я предполагаю, что это вызвано назначением и моими проверками.

Есть ли лучший и более быстрый способ доступа / проверки и / или назначения значения в выделенную переменную?

1 Ответ

0 голосов
/ 04 июня 2020

Я думаю, что код, который вы написали, не должен иметь проблем с производительностью. но вы можете использовать некоторые приемы. например
1. если вы проверяете все элементы массива более одного раза, и ваш массив не изменяется во время процесса, лучше отфильтровать ваш массив.

var filteredData = data.filter( item => item != null && item.length > 2);

2. вы можете использовать массив метаданных, в котором вы можете сохранить результат условия.

var myArray = []
var metadata = []
function addToArray(item) {
  myArray.push(item)
  metadata.push(item != null && item.length > 2)
}

if (metadata[2]) {
  a = myArray[2]
}

if (metadata[5] && metadata[10]) {
  var b = myArray[5] + ' ' + myArray[10]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...