Помогите с алгоритмом, или подскажите как правильно решить задачу.
есть строка:
'slug spider rock gravel gravel gravel gravel gravel gravel gravel';
я хочу вернуть отсортированную, условие, всё что не rock, заменить на gravel. a rock оставить как rock:
'gravel gravel rock gravel gravel gravel gravel gravel gravel gravel'
var garden1 = 'slug spider rock gravel gravel gravel gravel gravel gravel gravel';
function filtering(value) {
if (value == 'rock') {
return 'rock';
} else {
return 'gravel'
}
}
function rakeGarden(garden) {
var rakedGarden = garden.split(' ');
rakedGarden.filter(filtering);
}
alert(rakeGarden(garden1));
Не ту (filter) функцию используете. map() обрабатывает каждый элемент массива. И раз нужна строка на выходе, то вернуть (у вас не было возврата значения из функции) ее надо через преобразование массива в строку с помощью join()
var garden1 = 'slug spider rock gravel gravel gravel gravel gravel gravel gravel';
function rakeGarden(garden) {
var rakedGarden = garden.split(' ');
return rakedGarden.map(function(value) {
if (value == 'rock') {
return 'rock';
} else {
return 'gravel'
}
}).join(' ');
}
console.log(rakeGarden(garden1));
Добавил ещё вариант решения:
var garden1 = 'slug spider rock gravel gravel gravel gravel gravel gravel gravel';
const rakeGarden = garden =>
garden
.split(' ')
.map(item => item === 'rock' ? 'rock' : 'gravel')
.join(' ')
console.log(rakeGarden(garden1));
Вариант с использованием цикла for:
var garden1 = 'slug spider rock gravel gravel gravel gravel gravel gravel gravel';
function rakeGarden(garden) {
var tab = garden.split(" ");
for (var i = 0; i < tab.length; i++) {
if (tab[i] != 'rock' && tab[i] != 'gravel') {
tab[i] = 'gravel';
}
}
var rakedGarden = tab.join(" ");
return rakedGarden;
}
console.log(rakeGarden(garden1));
Здравствуйте! Нужен таймер обратного отчета, по истечению которого перебрасывает на indexhtml
Есть Таблица и в ней есть строки <td> Получаю их значение с помощью jQuery таким образомНо он дает мне все значения td