04.01.2013, 13:30
|
Профессор
|
|
Регистрация: 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.
|
|
04.01.2013, 13:41
|
без статуса
|
|
Регистрация: 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)
|
|
04.01.2013, 13:45
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Требуется вывести массив без повторов.
Нужно вывести новый массив не используя объект
|
|
04.01.2013, 14:01
|
без статуса
|
|
Регистрация: 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)
|
|
04.01.2013, 14:05
|
|
✔
|
|
Регистрация: 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) ;
__________________
★ ²º¹³ ☆
|
|
04.01.2013, 14:06
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Deff,cпасибо.
А мой код, можно ещё подкорректировать?
|
|
04.01.2013, 14:06
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Hekumok,спасибо.То,что нужно!
|
|
04.01.2013, 14:09
|
без статуса
|
|
Регистрация: 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)
|
|
04.01.2013, 14:11
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
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);
|
|
04.01.2013, 15:42
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от Deff
|
for(var j in arr2){
|
не смущает, что так массивы перебирать нельзя?
Цитата:
|
Длина массива определяется свойством .length. У хэшей такого нет.
....
В хэшах просто перебираются все ключи. А зная ключи, можно узнать и значения. В данном случае ничего сложного нет. Однако стоит понимать, что если применить данный способ не к хэшу, а к массиву, мы можем получить несколько больше, чем ожидаем.
|
Последний раз редактировалось dmitriymar, 04.01.2013 в 15:47.
|
|
|
|