Найти все цифры из массива в числе
Приветствую!
Собстно, сабж. Есть функция 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; }); } }); } Подскажите, пожалуйста, куда копать. :-? |
Возвращаем массив совпадений (вообще нун ещё фильтровать и идентичные цифры, дабы не было повторов, - не делал)
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 |
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 |
Deff,
:blink: |
рони,
Наверно я недопонял задачку(глянул лишь на название темы, оттель и плясал) |
Цитата:
alert(isContains(3, [1,3]) ); //true :( |
Цитата:
//false :( |
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 не проходит проверку. |
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]) ); |
Часовой пояс GMT +3, время: 12:55. |