Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.01.2013, 13:30
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Bывести без повторов:
Не получается.Нужно вывести без повторов:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>

<body>
<script>
var a=new Array('dsda','fjjd','fhhd','dsda'),povtor=true;
for(i=0;i<a.length;++i){

}
	while(povtor){
		for(i=0;i<a.length;++i){
			for(j=0;j<a[i].length;++j){
				if(a[j]==a[i]){
					a[j]=a;
				}
					else{povtor=false}
					}}}
			alert(a);
			</script>

</body>
</html>

Последний раз редактировалось dima***, 04.01.2013 в 13:35.
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2013, 13:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var arr1=new Array('dsda','fjjd','fhhd','dsda','fhhd','dsda');
var obj ={};
 for(var i in arr1){
   obj[arr1[i]]=true;
 }
 arr1=[];
 for(var key in obj){
   arr1.push(key);
 }

alert(arr1)
Ответить с цитированием
  #3 (permalink)  
Старый 04.01.2013, 13:45
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Требуется вывести массив без повторов.
Нужно вывести новый массив не используя объект
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2013, 14:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var arr1=new Array('dsda','fjjd','fhhd','dsda','fhhd','dsda');
var arr2=[];
for(var i in arr1){
   if(arr2.indexOf(arr1[i])==-1)arr2.push(arr1[i]);
}
alert(arr2)
Ответить с цитированием
  #5 (permalink)  
Старый 04.01.2013, 14:05
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

var a = ['dsda', 'fjjd', 'fhhd', 'dsda'], arr = [], flag = true ;
arr.push(a[0]) ;
for(var i=1; i<a.length; i++) {
for(var j=0; j<arr.length; j++) {
if(a[i]==arr[j]) {
flag = false ;
break ;
} ;
} ;
if(flag) arr.push(a[i]) ;
flag = true ;
} ;
alert(arr) ;
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #6 (permalink)  
Старый 04.01.2013, 14:06
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Deff,cпасибо.
А мой код, можно ещё подкорректировать?
Ответить с цитированием
  #7 (permalink)  
Старый 04.01.2013, 14:06
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Hekumok,спасибо.То,что нужно!
Ответить с цитированием
  #8 (permalink)  
Старый 04.01.2013, 14:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Для включая старые ИЕ
var arr1=new Array('dsda','fjjd','fhhd','dsda','fhhd','dsda');
var arr2=[];
for(var i in arr1){
   var key=true;
   for(var j in arr2){
      if(arr2[j]==arr1[i]){key=false;break}
   }
   if(key)arr2.push(arr1[i]);
}
alert(arr2)
Ответить с цитированием
  #9 (permalink)  
Старый 04.01.2013, 14:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

dima***,
Вариант ...
var a = new Array('dsda','fjjd','fhhd','dsda'),len = a.length,l;
while (len--) {l=len;
while (l--) {
if(a[len]==a[l]) a.splice(len,1)
}}
alert(a);
Ответить с цитированием
  #10 (permalink)  
Старый 04.01.2013, 15:42
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Deff
for(var j in arr2){
не смущает, что так массивы перебирать нельзя?
Цитата:
Длина массива определяется свойством .length. У хэшей такого нет.
....
В хэшах просто перебираются все ключи. А зная ключи, можно узнать и значения. В данном случае ничего сложного нет. Однако стоит понимать, что если применить данный способ не к хэшу, а к массиву, мы можем получить несколько больше, чем ожидаем.

Последний раз редактировалось dmitriymar, 04.01.2013 в 15:47.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как реализуется редактирование и оформление текста без традиционных форм macdack Общие вопросы Javascript 0 03.11.2012 20:23
Запуск браузера (IE6 и выше) без "офорлмения" - без панелей, меню, строки состояния jett Events/DOM/Window 4 23.11.2011 15:58
Подскажите как в VLC плеере переключать канал без перезагрузки страницы? mff Events/DOM/Window 0 10.05.2010 17:28
Открытие нового окна без скролбаров без верхнего бара "файл правка вид и тп" Mara Общие вопросы Javascript 2 18.02.2010 15:11
Автообновление <div> без перезагрузки страницы Antihrist AJAX и COMET 14 28.07.2008 06:06