Показать сообщение отдельно
Старый 28.04.2014, 18:44
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 24  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Akopalipsis, я, конечно, не знаю насчёт in, но вот это
Код AS3:
var array:Array = [];
for(var j:int = 1; j <= 100; j ++)
	array.push(j);
array.splice(array.indexOf(3),1);
array.splice(array.indexOf(40),1);
 
trace(findMissingIntegers(array, 2));
 
function findMissingIntegers(arr:Array, missingNum:int = 0):Array
{
	var missingArr:Array = [];
 
	for(var i:int = 1; i <= arr.length + missingNum; i++)
	{
		if(!i in arr) missingArr.push(i);
	}
 
	return missingArr;
}
Не работает.
Код AS3:
var array:Array = [];
for(var j:int = 1; j <= 100; j ++)
	array.push(j);
array.splice(array.indexOf(3),1);
array.splice(array.indexOf(40),1);
 
trace(findMissingIntegers(array, 2));
 
function findMissingIntegers(arr:Array, missingNum:int = 0):Array
{
	var missingArr:Array = [];
 
	for(var i:int = 1; i <= arr.length + missingNum; i++)
	{
		if(!(i in arr)) missingArr.push(i);
	}
 
	return missingArr;
}
Это выдаёт 98, 99, 100,
Код AS3:
var array:Array = [];
for(var j:int = 1; j <= 100; j ++)
	array.push(j);
array.splice(array.indexOf(3),1);
array.splice(array.indexOf(40),1);
 
trace(findMissingIntegers(array, 2));
 
function findMissingIntegers(arr:Array, missingNum:int = 0):Array
{
	var missingArr:Array = [];
 
	for(var i:int = 1; i <= arr.length + missingNum; i++)
	{
		if(arr.indexOf(i) < 0) missingArr.push(i);
	}
 
	return missingArr;
}
А это работает как положено и выдаёт 3 и 40.

Добавлено через 13 минут
Вот, в общем, самый найменее громоздкий и простой для понимания код, а главное работающий, по поиску удалённых чисел.
Код AS3:
function findMissingIntegers(arr:Array, missingNum:int = 0):Array
{
	var missingArr:Array = [];
	for(var i:int = 1; i <= arr.length + missingNum; i++)
		if(arr.indexOf(i) < 0) missingArr.push(i);
	return missingArr;
}
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 28.04.2014 в 19:36.