Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задача по JavaScript (https://javascript.ru/forum/misc/30820-zadacha-po-javascript.html)

oneguy 20.08.2012 16:47

Цитата:

Сообщение от Deff (Сообщение 199105)
oneguy,
я сообразил (потому и затёр

Хорошо. Я своё затирать не буду, может ещё кто-то не сразу догадается.

Deff 20.08.2012 16:55

Цитата:

Сообщение от oneguy
Ещё такое решение:

Соль сей штуки - достаточно практичная - к примеру для ротации объекта в слайдере (пусть буква будет хеш некого обекта, ессено буквы/цыфры - не дублируются

nerv_ 20.08.2012 17:02

oneguy, ты еще, наверно, в школе на пятерки по математике учился, да? :dance:

Цитата:

Сообщение от Deff
Соль сей штуки - достаточно практичная - к примеру для ротации объекта в слайдере (пусть буква будет хеш некого обекта, ессено буквы/цыфры - не дублируются

шо ты нам все буквами, цифрами, пример давай :no:

oneguy 20.08.2012 17:13

Цитата:

Сообщение от wawandas
Ребята! подскажите пожалуйста как извлечь уникальные значения из массива:

var array = [1,2,3,4,1,2,6,7];

заранее спасибо!

Моё решение в предположении, что в массиве хранятся числа и порядок чисел в выходном массиве не важен:
function unique(arr) {
  if (!arr.length)
    return [];
  var arr2=arr.concat().sort(function (x, y) {
    return x-y;
  });
  var result=[arr2[0]], i=0, len=arr2.length-1;
  while (i<len)
    if (arr2[i]!=arr2[++i])
      result.push(arr2[i]);
  return result;
}
//тесты
alert(unique([1,2,3,4,1,2,6,7]));

wawandas 30.08.2012 10:01

/*
Используя только арифметическую операцию +, напишите функцию, которая принимает аргумент - число, и возвращает такое же число с противоположным знаком.
Пример: Из числа 13 на выходе получить -13.
*/


function negative(n)
	{
		return n+(-n)+(-n);
	}
alert(negative(13));


n = '-' + n;
return  parseInt(n);//не канает!


какие есть еще решения? думаем, делимся, спасибо за внимание!

lord2kim 30.08.2012 10:10

Цитата:

Сообщение от wawandas (Сообщение 201593)
/*
Используя только арифметическую операцию +, напишите функцию, которая принимает аргумент - число, и возвращает такое же число с противоположным знаком.
Пример: Из числа 13 на выходе получить -13.
*/


function negative(n)
	{
		return n+(-n)+(-n);
	}
alert(negative(13));


n = '-' + n;
return  parseInt(n);//не канает!


какие есть еще решения? думаем, делимся, спасибо за внимание!

а чем вас ваш последний вариант не устроил?
var n = 13;
n = '-' + n;
alert(parseInt(n));//не канает!

wawandas 30.08.2012 10:18

Цитата:

Сообщение от lord2kim
Используя только арифметическую операцию +


меня устраивает, но оно не отвечает условию (((


+ здесь выступает как контактенация а не как арифметическая операция

Aetae 30.08.2012 10:25

var n = 13;
n = +('-' + n);
alert(n)
alert(typeof n)

Но условие убогое, ибо трактовать можно как угодно.
Например "арифметическую" - тогда этот вариант не катит так как " '-' + n " - не арифметический +, а конкатенация и " +('-' + n) " - также не арифметический +, а приведение к числу.
Или взять "только", тогда вообще никакой вариант не проходит: в первом варианте использован минус и в обоих, божеж ты мой, использованы скобочки.

lord2kim 30.08.2012 10:25

wawandas, сори не до конца дочитал...ну тогда только
var n = 13;
n = n + (-n) + (-n); //n = n + (-2 * n);
alert(parseInt(n));

хотя тут также условие не выполняется, ибо используется операция отрицания

wawandas 30.08.2012 10:30

Цитата:

Сообщение от lord2kim
ибо используется операция отрицания

в данном случае - это знак числа, или не?


Часовой пояс GMT +3, время: 12:23.