Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.02.2017, 08:33
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Вывод массива при условии
Всем, добрый день,
есть код:
var components = {
				water: 500,
				tea: 250,
				sugar: 15
			},
			recipes = {
				black: {
					water: 600,
					tea: 270,
					sugar: 15
				},
				gray: {
					water: 200,
					tea: 350,
					sugar: 5
				},
				green: {
					water: 350,
					tea: 50,
					sugar:20
				}
			}

		function check() {
			var ex = [];
			for (var key in recipes) {
				if (recipes[key].water > components.water) {
					ex.push('water');
				} else if (recipes[key].tea > components.tea) {
					ex.push('tea');
				} else if (recipes[key].sugar > components.sugar) {
					ex.push('sugar');
				}				
			}
			console.log(ex);
		}

		check();

Check() сравнивает рецепты и остатки по компонентам. Как сделать что бы выводились все разногласия а не первое попавшееся. Заранее благодарю
Ответить с цитированием
  #2 (permalink)  
Старый 22.02.2017, 09:33
Интересующийся
Отправить личное сообщение для ynherb Посмотреть профиль Найти все сообщения от ynherb
 
Регистрация: 21.02.2017
Сообщений: 14

у тебя проблема в том что else if сработает только тогда когда if == false,
измени просто все на if

function check() {
            var ex = [];
            for (var key in recipes) {
                for(var i in recipes[key]) {
                if (recipes[key][i] > components[i]) ex.push(i);

          }
        }

  }

Последний раз редактировалось ynherb, 22.02.2017 в 09:36.
Ответить с цитированием
  #3 (permalink)  
Старый 22.02.2017, 09:41
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

ynherb,
Спасибо, запутался. Все работает.)))))))))))))))))
Ответить с цитированием
  #4 (permalink)  
Старый 22.02.2017, 10:22
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Не совсем(((
Ответить с цитированием
  #5 (permalink)  
Старый 22.02.2017, 10:24
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
		var ex = [],
			nw = [],
			components = {
				water: {
					value: 500
				},
				tea: {
					value: 250
				},
				sugar: {
					value: 15
				}
			},
			recipes = {
				black: {
					water: 600,
					tea: 270,
					sugar: 30
				},
				gray: {
					water: 200,
					tea: 350,
					sugar: 5
				},
				green: {
					water: 350,
					tea: 50,
					sugar:20
				}
			}

		function check() {
			for (var key in recipes) {
				for (var i in recipes[key]) {
					if (recipes[key][i] > components[i]) ex.push(i);
				}
			}
		}
		check();
		console.log(ex);
		function finish(arr) {
			var obj = {};
			for (var i = 0; i < arr.length; i++) {
				var str = arr[i];
				obj[str] = true;
			}
			return Object.keys(obj);
		}
		nw = finish(ex);
		console.log(nw);
		console.log(typeof(nw));
	</script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 22.02.2017, 10:25
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Вот теперь правильно написал. В components может добавляться неограниченное количество свойств.
Ответить с цитированием
  #7 (permalink)  
Старый 22.02.2017, 10:37
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Все. Ступил. Работает))))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод текста при нажатии на картинку gtxtymt Элементы интерфейса 2 09.09.2015 18:45
Вывод radio checked при перезагрузке страницы arhat78 Общие вопросы Javascript 21 15.05.2015 14:01
Вывод определенного блока при выполнении условий sergiocharm Общие вопросы Javascript 24 17.04.2012 19:22
Перенаправление OnClick при условии Pacan4ik Элементы интерфейса 0 09.04.2012 06:32