28.07.2018, 14:42
|
Новичок на форуме
|
|
Регистрация: 28.07.2018
Сообщений: 3
|
|
Помогите , элементы массива по порядку из другого массива
Делаю скрипт для сверки размеров обуви , есть 5 массивов, и нужно по порядковому номеру объетка из массива доставать объект того-же номера из другого массива , помогите , как можно это реализовать.(Я совсем новичек в js , просто не смог найти в Гугле , как это сделать)
|
|
28.07.2018, 15:48
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
сделайте тестовый HTML, и напишите подробней что не получается, не понятно чего вы хотите.
обращение к ячейке массива через квадратные скобки arr[номер ячейки, отсчет с нуля]
|
|
28.07.2018, 15:56
|
Новичок на форуме
|
|
Регистрация: 28.07.2018
Сообщений: 3
|
|
Мне нужно , что бы при вводе допустим 35(допустим 2 номер в массиве) размера , и выборе типа EUR и 2 типа US, программа находила в массиве с US размерами так же 2 по порядку объект и выводила его.На сколько я понимаю , это делается через for , или foreach ,а как именно разобраться не могу.
|
|
28.07.2018, 18:12
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,116
|
|
Rost_shat,
лучше код, а не картинки!
|
|
28.07.2018, 18:36
|
Новичок на форуме
|
|
Регистрация: 28.07.2018
Сообщений: 3
|
|
<!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
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,116
|
|
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
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,116
|
|
Сообщение от Rost_shat
|
<option>Classic</option>
|
на каком это языке написано?
|
|
28.07.2018, 19:24
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,116
|
|
Конвертер размеров обуви
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
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,116
|
|
Конвертер размеров обуви
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.
|
|
28.07.2018, 20:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,116
|
|
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];
|
|
|
|