Цитата:
//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, время: 03:30. |