Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2016, 00:44
Интересующийся
Отправить личное сообщение для rand01m Посмотреть профиль Найти все сообщения от rand01m
 
Регистрация: 11.03.2016
Сообщений: 11

Найти все цифры из массива в числе
Приветствую!
Собстно, сабж.
Есть функция isContains(number, array). Number - натуральное число, array - простой массив из цифр.
Для number состоящих только из цифр array возвращать true, иначе false.

alert(isContains(449, [4,9]));
//true
alert(isContains(134, [1,3]));
//false
alert(isContains(18, [8,1]));
//true
alert(isContains(18, [7,1]));
//false
alert(isContains(3, [1,3]));
//false

Я попробовал реализовать, но спотыкаюсь на числах типа isContains(149, [4,9]);

function isContains(number, array) {
      var numberArray = String(number).split('');
        return array.every(function(elem){
          if (String(number).indexOf(elem) != -1) {
            return numberArray.some(function(nElem){
              if(Number(nElem) === elem) return true;
            });
          }
        });
    }

Подскажите, пожалуйста, куда копать.

Последний раз редактировалось rand01m, 15.03.2016 в 01:29. Причина: добавил alert
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2016, 01:04
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Возвращаем массив совпадений (вообще нун ещё фильтровать и идентичные цифры, дабы не было повторов, - не делал)
function isContains(number, array) {
      var dig = number.toString(),  outArr ;
      return    outArr = array.filter(function(num) {
         return dig.indexOf(num)!=-1;
      }); 
}
alert(isContains(149, [4,9]))

https://learn.javascript.ru/array-iteration

Последний раз редактировалось Deff, 15.03.2016 в 01:08.
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2016, 01:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

rand01m,
function isContains(number, array) {
      var numberArray = String(number).split('');
        return numberArray.every(function(elem){
          return array.indexOf(+elem) != -1

        });
    }
      alert(isContains(449, [4,9]) );
//true
 alert(isContains(134, [1,3] ));
//false
 alert(isContains(18, [8,1]) );
//true
 alert(isContains(18, [7,1]) );
//false
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2016, 01:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Deff,
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2016, 01:11
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

рони,
Наверно я недопонял задачку(глянул лишь на название темы, оттель и плясал)

Последний раз редактировалось Deff, 15.03.2016 в 01:14.
Ответить с цитированием
  #6 (permalink)  
Старый 15.03.2016, 01:15
Интересующийся
Отправить личное сообщение для rand01m Посмотреть профиль Найти все сообщения от rand01m
 
Регистрация: 11.03.2016
Сообщений: 11

Сообщение от рони Посмотреть сообщение
rand01m,
function isContains(number, array) {
      var numberArray = String(number).split('');
        return numberArray.every(function(elem){
          return array.indexOf(+elem) != -1

        });
    }
      alert(isContains(449, [4,9]) );
//true
 alert(isContains(134, [1,3] ));
//false
 alert(isContains(18, [8,1]) );
//true
 alert(isContains(18, [7,1]) );
//false

alert(isContains(3, [1,3]) );
//true

Последний раз редактировалось rand01m, 15.03.2016 в 01:18.
Ответить с цитированием
  #7 (permalink)  
Старый 15.03.2016, 01:27
Интересующийся
Отправить личное сообщение для rand01m Посмотреть профиль Найти все сообщения от rand01m
 
Регистрация: 11.03.2016
Сообщений: 11

Сообщение от Deff Посмотреть сообщение
В принципе легко правиться
function isContains(number, array) {
      var dig = number.toString(),  outArr ;
      outArr = array.filter(function(num) {
         return dig.indexOf(num)!=-1;
      }); 
      return    outArr.join(',')==array.join(',');
}
alert(isContains(149, [4,9]))
isContains(449, [4,9])
//false
Ответить с цитированием
  #8 (permalink)  
Старый 15.03.2016, 01:34
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

function isContains(number, array) {
      var dig = number.toString(),  outArr ;
      outArr = array.filter(function(num) {
         return dig.indexOf(num)!=-1;
      }); 
      return    outArr.join(',')==array.join(',');
}
alert(isContains(449, [4,9]))
alert(isContains(3, [1,3]) );

Но всё одно изврат, пользуйте код от рони

Последний раз редактировалось Deff, 15.03.2016 в 01:37.
Ответить с цитированием
  #9 (permalink)  
Старый 15.03.2016, 01:39
Интересующийся
Отправить личное сообщение для rand01m Посмотреть профиль Найти все сообщения от rand01m
 
Регистрация: 11.03.2016
Сообщений: 11

Сообщение от Deff Посмотреть сообщение
function isContains(number, array) {
      var dig = number.toString(),  outArr ;
      outArr = array.filter(function(num) {
         return dig.indexOf(num)!=-1;
      }); 
      return    outArr.join(',')==array.join(',');
}
alert(isContains(449, [4,9]))
alert(isContains(3, [1,3]) );

Но всё одно изврат, пользуйте код от рони
Спасибо, конечно, но...
alert(isContains(134, [1,3]) );
//true

У рони 3 не проходит проверку.
Ответить с цитированием
  #10 (permalink)  
Старый 15.03.2016, 01:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

rand01m, поправил cравнение:
function isContains(number, array) {
      var dig = number.toString(),  outArr ;
      outArr = array.filter(function(num) {
         return dig.indexOf(num)!=-1;
      }); 
      return    JSON.stringify(outArr)==JSON.stringify(array);
}
alert(isContains(449, [4,9]))
alert(isContains(3, [1,3]) );

Последний раз редактировалось Deff, 15.03.2016 в 01:48.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать все элементы массива уникальными exec Общие вопросы Javascript 43 25.12.2015 01:14
Найти все подстроки в строке BorisBritva jQuery 2 11.04.2013 22:47
найти все элементы формы wcb-falcon Общие вопросы Javascript 6 17.07.2012 18:22
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37