Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2020, 18:21
Аватар для nastya97core
Аспирант
Отправить личное сообщение для nastya97core Посмотреть профиль Найти все сообщения от nastya97core
 
Регистрация: 04.04.2020
Сообщений: 60

Как проверить в начале весь массив на одно условие, а потом на другое?
У меня есть несколько массивов данных. К примеру такого вида:
["значение": "asdlkfjhasjd", "значение": "Яблоко", "значение": "adfkljahsdj", "значение": "Банан",]

В массиве может быть только Банан, либо только Яблоко, либо Банан и Яблоко, либо вообще ничего. Я перебираю массив через forEach. Мне нужен Банан, но если Банана нет, то мне нужно Яблоко. По сути мне бы подошло условие:
if (значение == Банан) {...} else if (значение == Яблоко) {...}

но проблема в том, что Банан может быть в конце массива, а скрипт проверяет значение и видит, что Яблоко подходит и возвращает мне Яблоко. А в приоритете всегда у меня Банан. Как бы сделать так, чтобы в случае, если в массиве есть Банан, то он бы и возвращался? Но если банана нет, то искалось бы Яблоко.

И пока я писала этот вопрос, меня начал смущать момент того, что массив будет перебираться 2 раза. А он довольно большой... Как бы ещё в один перебор уместиться?
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2020, 18:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

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);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переманную как условие в if блок xas Общие вопросы Javascript 3 02.02.2016 21:17
Как обнулить весь массив? Urukhay Общие вопросы Javascript 7 04.08.2014 10:14
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
как скопировать весь html из одного окна в другое? jetli13 Общие вопросы Javascript 3 14.07.2010 12:25
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14