Цитата:
//true з.ы. список проверок в первом посте. |
function isContains(number, array) { if(typeof(number)!="number") return false; var dig = number.toString().split(''), obj ={},obj2 ={}; array.forEach(function(item) { if(typeof(item)!="number") return false; obj[item] =1; if(dig.indexOf(''+item)!=-1)obj2[item]=1; }); dig.forEach(function(item) {if(!obj2[item]) obj2[item]=0;}); return JSON.stringify(obj)==JSON.stringify(obj2); } 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 |
rand01m,
function isContains(number, array) { var numberArray = String(number).split(''); return numberArray.every(function(elem) { return array.indexOf(+elem) != -1 }) && array.every(function(elem) { return numberArray.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])); //false |
Ребят, большое спасибо!
з.ы. В сети видел чуть другой алгоритм - брать остаток от деления проверяемого числа на 10, проходясь по массиву. Если остаток не соответствует текущему элементу массива, то элемент выпиливается. В итоге, функция возвращает сравнение нуля и длины обработанного массива. Если все цифры из проверочного массива есть в проверяемом числе, то естественно, конечный массив будет пуст, длина нулевой, что есть true, иначе false. |
Часовой пояс GMT +3, время: 17:21. |