Показать сообщение отдельно
  #1 (permalink)  
Старый 23.02.2016, 12:59
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

Сравнение массивов / вывести остаток
Привет!

Прошу помощи разобраться с вопросом:
пишу функцию, которая возвращает не использованые числа из массива, например

unused( 32, 90, 44 ) // сравниваем с массивом [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] 
и возвращаем строку "15678"


function unused(){
	


	for ( var n = 0; n < arguments.length; n ++ ) {

		var args = Array.prototype.slice.call(arguments);

		console.log( args )//[ 32, 90, 44 ]
				
		var arr = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
	
		var newArr = [];

		var sNum = arguments[ n ].toString();


		for ( var i = 0; i < sNum.length; i ++ ) {


		    newArr.push( +sNum.charAt( i ) );


		}


		var rest = arr.filter( i => newArr.indexOf( i ) < 0 );

		var result = rest.toString().replace( /\,/g,"" );


		console.log( newArr )//[ 3, 2 ], [ 9, 0 ], [ 4, 4 ]

		console.log( result )//не использованые числа
  	}

}

unused( 32, 90, 44 )



Переданные функции аргументы ( 32, 90, 44 ) мне нужно вывести для сравнения внутри функции одним массивом вида [ 3, 2, 9, 0, 4, 4 ].

По факту получается либо [ 32, 90, 44 ], либо отдельно [ 3, 2 ], [ 9, 0 ], [ 4, 4 ]. Оба варианта не подходят, т.к. в первом случае нет разбивки на отдельные цифры из которых состоят числа, в во втором случае каждый аргумент обрабатывается отдельно как массив, массивы аргументов не суммируются.
Ответить с цитированием