Показать сообщение отдельно
Старый 27.06.2007, 20:46
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 4  
Ответить с цитированием
chingachgoog
Banned
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Все разобрался таки
Как обычно все просто
Код:
arrY0=[]
for (var i=0; i<4; i++) {
	arrY0[i]=i
	trace(typeof(arrY0[i])+" "+arrY0[i]+" arrY0")
}
	
arrYk=[] 

for (var i=0; i<4; i++) {
	id=Math.round(Math.random()*(arrY0.length-1))
	trace("id "+id+" "+typeof(arrY0[id])+" "+arrY0[id])
	arrYk.push(arrY0.splice(id, 1)[0]) 
	trace(typeof(arrYk[i])+" "+arrYk[i]+" push "+arrYk.length)
}
Разница вот в чем:
было arrYk.push(arrY0.splice(id, 1))
стало arrYk.push(arrY0.splice(id, 1)[0])

т.е. splice возращает массив все-таки, хотя бы состоящий и из одного элемента, а это уже объект.

Теперь все нормуль:
number 0 arrY0
number 1 arrY0
number 2 arrY0
number 3 arrY0
id 1 number 1
number 1 push 1
id 2 number 3
number 3 push 2
id 0 number 0
number 0 push 3
id 0 number 2
number 2 push 4