Найти все цифры из массива в числе
Приветствую!
Собстно, сабж. Есть функция 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, время: 15:10. |