Проблема с массивом
Здравствуйте! У меня проблема со скриптом:
var names=new Array();var newNames=new Array(); function lolName(){ names=prompt("Имя ","h"); for(var i=0;i<newNames.length+names.length;i++) { if(newNames[i]==names[i]) {names.length=0;} else{newNames.push(names[i]);names.length=0;} } alert(newNames); } <p onclick="lolName()">demo</p> Мне нужно, чтобы если в массив( уже содержит это значение) сохраняется какое-то значение переменной, которое уже есть в этом массиве, оно не сохранялось. В общем говоря: newNames имеет элементы ["g","h"] если ввожу "h" или "g" они не добавляются в массив так, как они там уже существуют. У меня неправильно работает скрипт, помогите :cray: |
Кошмар! Ахтунг! Голактеко опасносте!
А гуглить не пробовали, перед тем, как постить свои излияния? |
e1f,
Цитата:
|
Цитата:
|
Kolyaj,
То есть не массивом, содержащим строковые элементы, а обычной строкой? Я его переопределил так сказать? |
А с чего он должен стать массивом, если функция prompt возвращает строку?
|
Kolyaj,
Спасибо, как я мог не заметить этого((( Нету опыта |
Хотя если я заменю
names.push(prompt("Имя ","h")); Тоже не пашет, тут нужно какой-то алгоритм разработать, может кто-то знает как сделать? |
вы такую глупость написали в первом посте, что лично мне даже впадлу объяснять по пунктам, что не так.
совет один: сесть и начать с нуля учить язык.любой |
Gvozd,
Что там глупого? Есть массив, длина которого заранее не известна, он хранит имена, есть другой массив, в который вводится имя(пока одно имя, когда выйдет проверка хотя бы на 1 имя будет несколько имён вводиться ). Это мне надо для одного задания, я просто не могу сделать проверку на совпадение имён, по этому вывел всё в отдельную фун-ю и имя будет не просто вводиться через промпт. |
Kiev,
Вот: var withoutSimilarNames=new Array(),names=new Array(),flag=false,count=0; function clearingTheNames() { names.push(prompt("Имя","g")); count=(withoutSimilarNames.length+names.length); for(var i=0;i<count;i++) { for(var j=0;j<count;j++) { if(names[i]==withoutSimilarNames[j]) { alert("Нашёлся одинаковый, не добавляем!!!"); flag=false; break; } else if(names[i]!=withoutSimilarNames[j]){flag=true;} } if(flag==true){alert("Добавляем!!!");withoutSimilarNames.push(names[i]);} } names=new Array(); alert(withoutSimilarNames); } <a href="#" onclick="clearingTheNames()">Добавить новое имя</a> Есть прорехи, доделаете сами, можете вообще модифицировать скрипт как хотите. |
Ох, спасибо Вам!!!!
|
Kiev,
вот вы спрашиваете что у вас за ошибки у вас весь код - ошибки обратите внимание хотя бы на два цикла вместо одного в правильном решении |
Gvozd,
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 18:02. |