Как проверить в начале весь массив на одно условие, а потом на другое?
У меня есть несколько массивов данных. К примеру такого вида:
["значение": "asdlkfjhasjd", "значение": "Яблоко", "значение": "adfkljahsdj", "значение": "Банан",] В массиве может быть только Банан, либо только Яблоко, либо Банан и Яблоко, либо вообще ничего. Я перебираю массив через forEach. Мне нужен Банан, но если Банана нет, то мне нужно Яблоко. По сути мне бы подошло условие: if (значение == Банан) {...} else if (значение == Яблоко) {...} но проблема в том, что Банан может быть в конце массива, а скрипт проверяет значение и видит, что Яблоко подходит и возвращает мне Яблоко. А в приоритете всегда у меня Банан. Как бы сделать так, чтобы в случае, если в массиве есть Банан, то он бы и возвращался? Но если банана нет, то искалось бы Яблоко. И пока я писала этот вопрос, меня начал смущать момент того, что массив будет перебираться 2 раза. А он довольно большой... Как бы ещё в один перебор уместиться? |
nastya97core,
const find = (arr, pattern) => pattern.filter(a => arr.includes(a)).shift(); const arr = ["asdlkfjhasjd", "Яблоко", "adfkljahsdj", "Банан"]; const pattern = ["Банан", "Яблоко"]; let item = find(arr, pattern); alert(item); |
Часовой пояс GMT +3, время: 17:17. |