Необходимо реализовать алгоритм проверяющий наличие подстроки в массиве строк и возвращающая номера элементов массива, в которых встретилась указанная строка.
Т.е. допустим дан массив: let arr = ['aad','asad','adsd']; let sub = ['ad']; В результате выполнения функции необходимо получить 0, 1.
Сложность в том, что по условию задачи нельзя пользоваться стандартными функциями.
Без встроенных функций:
let arr = ['a@d', 'add', 'aadd', 'asad', 'test', 'adsd', 55555];
let str = 'ad';
/*****/
let indexList = [];
for (let i = 0; i < arr.length; i++) {
if ( match(arr[i], str) ) { // совпало - true, не совпало - false
indexList[indexList.length] = i;
}
}
console.log(indexList); // Должно вывести [1, 2, 3, 5]
/*****/
function match(str, sub) {
str = "" + str;
sub = "" + sub;
if (sub.length > str.length) {
return false;
} // Субстрока больше строки - сразу несовпадение.
let interval = str.length - sub.length + 1;
// строка из 3-х букв, субстрока из 2-х, значит нужно 2 проверки на полное совпадение
for (let i = 0; i < interval; i++) {
let match = 0;
for (let u = 0; u < sub.length; u++) {
if( str[i+u] !== sub[u] ){ // По очереди сравниваются все буквы.
break;
} else {
match++;
}
}
if( match === sub.length ){ return true; }
}
return false;
}
Вариант со встроенными функциями, на случай, если у кого-то будет аналогичная задача, но без искусственных ограничений. :)
let arr = ['aad', 'abcd', 'adsd', 'da'];
let str = 'ad';
let result = arr.map((item, i) => item.indexOf(str) >= 0 ? i : -1).filter(item => item >= 0);
console.log(result);
В массив сохранять думаю удобнее всего, его уже можно обработать как надо.
let arr = ['ad','asad','adsd', 'ad'];
let sub = ['ad'];
let res = [];
arr.forEach(function(elem) {
if(elem == sub[0]) {
res += '1';
} else {
res += '0';
}
});
alert(res);
Мы просто сравниваем 0 элемент массива с сравниваемым массивом. Также можно в sub добавить несколько элементов, но для этого нужно дописать еще один if
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В родительском компоненте есть такая функция
Есть дата: moment()format('L') , как вернуть её обратно к moment? Если есть другие варианты, чтобы прибавить дни, они тоже подойдут, но пожалуйста, без парсинга...
Пробую использовать функцию __doPostBack, но выходит ошибкаНа стороне сервера у меня есть только page load