Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Помогите , элементы массива по порядку из другого массива (https://javascript.ru/forum/css-html/74664-pomogite-ehlementy-massiva-po-poryadku-iz-drugogo-massiva.html)

Rost_shat 28.07.2018 14:42

Помогите , элементы массива по порядку из другого массива
 
Вложений: 3
Делаю скрипт для сверки размеров обуви , есть 5 массивов, и нужно по порядковому номеру объетка из массива доставать объект того-же номера из другого массива , помогите , как можно это реализовать.(Я совсем новичек в js , просто не смог найти в Гугле , как это сделать)

j0hnik 28.07.2018 15:48

сделайте тестовый HTML, и напишите подробней что не получается, не понятно чего вы хотите.
обращение к ячейке массива через квадратные скобки arr[номер ячейки, отсчет с нуля]

Rost_shat 28.07.2018 15:56

Мне нужно , что бы при вводе допустим 35(допустим 2 номер в массиве) размера , и выборе типа EUR и 2 типа US, программа находила в массиве с US размерами так же 2 по порядку объект и выводила его.На сколько я понимаю , это делается через for , или foreach ,а как именно разобраться не могу.

рони 28.07.2018 18:12

Rost_shat,
лучше код, а не картинки!

Rost_shat 28.07.2018 18:36

<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Конвертер размеров обуви</title>
       <link rel="stylesheet" type="text/css" href="css.css">
       <script src="js.js">
       </script>
    </head>
    <body>
       <div class="table">
            <h2>КОНВЕРТЕР РАЗМЕРОВ </br>ОБУВИ v0.1</h2>
           <img src="src/krosi.png">
        <form action="" method="post" name="users" id="form" >
           		<h3>Введите ваш размер</h3>
           		<input type="number" name="user" id="user">
          
           <h3 class="type">Тип:</h3>
           <select class="usersize" id="usert">
           		<option>Classic</option>
           		<option>US</option>
           		<option>UK</option>
           		<option>EUR(FR)</option>
           		<option>sm</option>
           </select>
           <h3 class="type2" id="test">Нужный вам тип</h3>
           <select id="needt">
           		<option>Classic</option>
           		<option>US</option>
           		<option>UK</option>
           		<option>EUR(FR)</option>
           		<option>sm</option>
           </select></br>
           <input type="button" onclick="valid(document.getElementById('form'))" name="b1" id="button" value="Рассчитать" >
       		</br>
           <h3 class="type3" id="result">Результат:</h3>
       </form>
       </div>

    </body>
</html>

function valid (form){
	var usersize =form.user.value;
	var fail=false;
	var usertype=form.usert.value;
	var needtype=form.needt.value;
	var res;
	var Classic =[35,35.5,36,36.5,37,37.5,38,38.5,39,39.5,40,40.5,41,41.5,42,42.5,43,43.5,44,44.5,45,45.5,46,46.5,47,47.5,48];
	var ussize =["Размера нет","Размера нет",5,5.5,66,6.5,7,7.5,8,8.5,9,9,5,10,10.5,11,11.5,12,12.5,13,13.5,14];
	var uksize=[3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,12,12.5,13,13.5];
	var sm =[22.2,22.5,23,23.5,24,24.5,25,25.5,26,26.5,27,27.5,28,28.5,29,29.5,30,30.5,31,31.5,32];
	var eursize=[36,'36 2/3','37 1/3','38','38 2/3','39 1/3','40','40 2/3','41 1/3','42','42 2/3',
				'43 1/3','44','44 2/3','45 1/3' ,'46','46 2/3','47 1/3','48','48 2/3','49 1/3',50];
	if (usersize=="" || usersize==" ") {//пустое поле
		fail="Вы не ввели ваш размер";
	}
	if (fail){
		alert(fail);//вывод предупреждения
		location.reload();
	}
	else if(usertype==needtype){
		//result.innertext ="Результат"+usersize;
			
			if (usersize<35  && usertype=='Classic' || usertype=='Classic' && usersize>48 ||
				usersize<5 && usertype=='US'|| usersize>14 && usertype=='US'||
				usersize<3 && usertype=='UK'|| usersize>13.5 && usertype=='UK' ||
				usersize<22.2 && usertype=='sm' || usersize>32 && usertype=='sm' ||
				usersize<36 && usertype=='EUR(FR)' ||  usersize>50 && usertype=='EUR(FR)') {
				alert("Введите правильный размер!");//неправильные размеры
				//location.reload();
			}
			else/* if (usersize>=35 && usertype=='Classic' || usersize>=5 && usertype=='US' || usersize>=3.5 && usertype=='UK' ||usersize>=35 && usertype=='Classic'
				|| usersize>=36 && usertype=='EUR(FR)'|| usersize>=22.2 && usertype=='sm')*/ {
						if (usertype=='sm') {
								document.getElementById("result").innerHTML ="Результат: "+ usersize + " "+"см";
						}		
						else{
								document.getElementById("result").innerHTML ="Результат: "+ usersize + " "+needtype;//обращение к элементу с ид result и вывод на него другого текста
							}
				}
	}
	else if (usertype=='Classic') {
			if (needtype=='US') {
					for (var i = usersize; uksize==uksize; i++) {
						
					}
			}
			else if (needtype=='UK') {

			}
			else if(needtype=='EUR(FR)'){

			}
			else if(needtype=='sm'){

			}
	}

}
//location.reload(); -reload

рони 28.07.2018 18:41

Rost_shat,
function fn(cur, val, met)
{ var objSize = {Classik : ["35","35.5"], eursize : ["36", "36 2/3"]}
  var idx = objSize[cur].indexOf(val);
  if(idx != -1 && objSize[met][idx]) return objSize[met][idx];
  return false
}
var size = fn("Classik", "35", "eursize");
alert(size);
var size = fn("Classik", "100", "eursize")
alert(size);

рони 28.07.2018 19:17

Цитата:

Сообщение от Rost_shat
<option>Classic</option>

на каком это языке написано?

рони 28.07.2018 19:24

Конвертер размеров обуви
 
Rost_shat,
<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Конвертер размеров обуви</title>

       <script>
var Classik = [35, 35.5, 36, 36.5, 37, 37.5, 38, 38.5, 39, 39.5, 40, 40.5, 41, 41.5, 42, 42.5, 43, 43.5, 44, 44.5, 45, 45.5, 46, 46.5, 47, 47.5, 48];
var ussize = ["Размера нет", "Размера нет", 5, 5.5, 66, 6.5, 7, 7.5, 8, 8.5, 9, 9, 5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14];
var uksize = [3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5];
var sm = [22.2, 22.5, 23, 23.5, 24, 24.5, 25, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32];
var eursize = [36, "36 2/3", "37 1/3", "38", "38 2/3", "39 1/3", "40", "40 2/3", "41 1/3", "42", "42 2/3", "43 1/3", "44", "44 2/3", "45 1/3", "46", "46 2/3", "47 1/3", "48", "48 2/3", "49 1/3", 50];

function toStr(a) {
    return a.map(function(a) {
        return a.toString()
    })
}
var objSize = {
    0: toStr(Classik),
    1: toStr(ussize),
    2: toStr(uksize),
    4: toStr(sm),
    3: toStr(eursize)
};

function fn(cur, val, met) {
    var idx = objSize[cur].indexOf(val);
    if (idx != -1 && objSize[met][idx]) return objSize[met][idx];
    return false
}
document.addEventListener("DOMContentLoaded", function() {
    document.querySelector("#button").addEventListener("click", function() {
        var cur = document.querySelector("#usert").selectedIndex,
            val = document.querySelector("#user").value.trim(),
            met = document.querySelector("#needt").selectedIndex;
        document.querySelector("#result").innerHTML = fn(cur, val, met) || "ошибка ввода данных"
    })
});
       </script>
    </head>
    <body>
       <div class="table">
            <h2>КОНВЕРТЕР РАЗМЕРОВ </br>ОБУВИ v0.1</h2>
           <img src="src/krosi.png">
        <form action="" method="post" name="users" id="form" >
           		<h3>Введите ваш размер</h3>
           		<input type="number" name="user" id="user">

           <h3 class="type">Тип:</h3>
           <select class="usersize" id="usert">
           		<option>Classik</option>
           		<option>US</option>
           		<option>UK</option>
           		<option>EUR(FR)</option>
           		<option>sm</option>
           </select>
           <h3 class="type2" id="test">Нужный вам тип</h3>
           <select id="needt">
           		<option>Classik</option>
           		<option>US</option>
           		<option>UK</option>
           		<option>EUR(FR)</option>
           		<option>sm</option>
           </select></br>
           <input type="button"  name="b1" id="button" value="Рассчитать" >
       		</br>
           <h3 class="type3" id="result">Результат:</h3>
       </form>
       </div>

    </body>
</html>

рони 28.07.2018 19:54

Конвертер размеров обуви
 
Rost_shat,
вариант без input и button
<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Конвертер размеров обуви</title>

       <script>
var Classik = [35, 35.5, 36, 36.5, 37, 37.5, 38, 38.5, 39, 39.5, 40, 40.5, 41, 41.5, 42, 42.5, 43, 43.5, 44, 44.5, 45, 45.5, 46, 46.5, 47, 47.5, 48];
var ussize = ["Размера нет", "Размера нет", 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9, 5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14];
var uksize = [3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5];
var sm = [22.2, 22.5, 23, 23.5, 24, 24.5, 25, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32];
var eursize = [36, "36 2/3", "37 1/3", "38", "38 2/3", "39 1/3", "40", "40 2/3", "41 1/3", "42", "42 2/3", "43 1/3", "44", "44 2/3", "45 1/3", "46", "46 2/3", "47 1/3", "48", "48 2/3", "49 1/3", 50];

function toStr(a) {
    return a.map(function(a) {
        return a.toString()
    })
}
var objSize = {
    0: toStr(Classik),
    1: toStr(ussize),
    2: toStr(uksize),
    4: toStr(sm),
    3: toStr(eursize)
};

function fn(cur, val, met) {
    var idx = objSize[cur].indexOf(val);
    if (idx != -1 && objSize[met][idx]) return objSize[met][idx];
    return false
}

function opt(i)
{
   var o = document.querySelector("#user").options;
   o.length = 0;
   objSize[i].forEach(function(a, i) {
        o[i] = new Option(a,a)
    })
}
document.addEventListener("DOMContentLoaded", function() {
    opt(0);
    document.querySelector("#form").addEventListener("change", function(event) {
        var cur = document.querySelector("#usert").selectedIndex;
        if(event.target.id == "usert") opt(cur)
        var val = document.querySelector("#user").value.trim(),
            met = document.querySelector("#needt").selectedIndex;
        document.querySelector("#result").innerHTML = "Результат: " + (fn(cur, val, met) || "ошибка ввода данных")
    })
});
       </script>
    </head>
    <body>
       <div class="table">
            <h2>КОНВЕРТЕР РАЗМЕРОВ </br>ОБУВИ v0.1</h2>
           <img src="src/krosi.png">
        <form action="" method="post" name="users" id="form" >


           <h3 class="type">Выберите исходный Тип:</h3>
           <select class="usersize" id="usert">
           		<option>Classik</option>
           		<option>US</option>
           		<option>UK</option>
           		<option>EUR(FR)</option>
           		<option>sm</option>
           </select>
           <h3>Выберите ваш размер</h3>
           <select  id="user"></select>
           <h3 class="type2" id="test">В какой тип конвертировать</h3>
           <select id="needt">
           		<option>Classik</option>
           		<option>US</option>
           		<option>UK</option>
           		<option>EUR(FR)</option>
           		<option>sm</option>
           </select></br>
           <h3 class="type3" id="result">Результат: 35</h3>
       </form>
       </div>

    </body>
</html>

рони 28.07.2018 20:03

Rost_shat,
var ussize = ["Размера нет", "Размера нет", 5, 5.5, 66, 6.5, 7, 7.5, 8, 8.5, 9, 9, 5, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14];


Часовой пояс GMT +3, время: 07:19.