Помогите решить задачу
Добрый день
Помогите плиз решить задачу на js Суть задачи: Есть 2 строки, в первой строке есть символ - * Нужно найти его вхождение и удалить во второй строке все найденные вхождения, и из первой тоже удалить все * чтобы получилось var str = "Type=Cyber_TIME=*_5_K=1.7*"; var str2 = "Type=Cyber_TIME=3_5_K=1.70"; на выходе: Type=Cyber_TIME=_5_K=1.7 Type=Cyber_TIME=_5_K=1.7 что "накодил" сам
var str = "Type=Cyber_TIME=*_5_K=1.7*";
var str2 = "Type=Cyber_TIME=3_5_K=1.70";
var target = "*"; // цель поиска
var all = [];
var pos = 0;
while (true) {
var foundPos = str.indexOf(target, pos);
if (foundPos == -1) break;
all.push(foundPos);
pos = foundPos + 1;
}
all.forEach(function (item, i, all) {
alert(item);
str[item] = '';
str2[item] = '';
});
console.log(str);
Помогите плиз |
str = str.replace(/\*/g,'') |
не, нужно номера букв в строке 2 удалить там где стоит * в строке 1
|
nekit44,
var str = "Type=Cyber_TIME=*_5_K=1.7*";
var str2 = "Type=Cyber_TIME=3_5_K=1.70";
var target = "*"; // цель поиска
var all = [];
var pos = 0;
while (true) {
var foundPos = str.indexOf(target, pos);
if (foundPos == -1) break;
all.push(foundPos - all.length);
pos = foundPos + 1;
}
all.forEach(function (item, i) {
str = str.slice(0,item) + str.slice(item+1)
str2 = str2.slice(0,item) + str2.slice(item+1)
});
console.log(str, str2);
|
Цитата:
Я был почти у цели) |
nekit44,
если нужно, можно добавить длину target
var str = "Type=Cyber_TIME=*_5_K=1.7*";
var str2 = "Type=Cyber_TIME=3_5_K=1.70";
var target = "*";
var len = target.length;
var all = [];
var pos = 0;
while (true) {
var foundPos = str.indexOf(target, pos);
if (foundPos == -1) break;
all.push(foundPos - all.length * len);
pos = foundPos + len
}
all.forEach(function(item) {
str = str.slice(0, item) + str.slice(item + len);
str2 = str2.slice(0, item) + str2.slice(item + len)
});
console.log(str, str2);
|
Ходы кривые роет...
var str = "Type=Cyber_TIME=*_5_K=1.7*";
var str2 = "Type=Cyber_TIME=3_5_K=1.70";
for (var i = str.length - 1;i > -1; i--) {
str[i] = str[i]==str2[i]?str[i]:"";
}
str2 = str;
console.log(str, str2);
...всегда идут в обход
var str = "Type=Cyber_TIME=*_5_K=1.7*";
var str2 = "Type=Cyber_TIME=3_5_K=1.70";
for (var i = str.length - 1;i > -1; i--) {
str[i] = str[i]==str2[i]|str[i];
}
str2 = str;
console.log(str, str2);
|
Dilettante_Pro, идея прикольная но не работает
|
Dilettante_Pro,
какой из вариантов работает и где? |
:write:
var str = "Type=Cyber_TIME=*_5_K=1.7*";
var str2 = "Type=Cyber_TIME=3_5_K=1.70";
str2 = str = [...str].filter(a => a != "*").join("");
console.log(str, str2);
|
:)
var str = "Type=Cyber_TIME=*_5_K=1.7*"; var str2 = "Type=Cyber_TIME=3_5_K=1.70"; str2 = str = [...str].reduce((a,b) => a += b == "*" ? "" : b, "" ); console.log(str, str2); |
Спасибо огромное за помощь!!!
Но у всех примеров str2 просто присваивается на основании str суть в том что они могут быть разными и по той же причине ни как сравнивать по символам вот я в виде кода изобразил, оно не работает но может так понятней будет
var str = "Type=Cyber_TIME=*_5_K=1.7*";
var str2 = "Type=Cyber_TIME=3_6_K=1.70";
for (var i = str.length - 1;i > -1; i--) {
if (str[i] == "*"){
str[i] = '';
str2[i] = '';
}else{
str[i] = str[i];
str2[i] = str2[i];
}
}
console.log(str, str2);
и должно получиться Type=Cyber_TIME=_5_K=1.7 Type=Cyber_TIME=_6_K=1.7 |
Цитата:
|
рони, Дружище! Спасибо!
Все просто - ОГОНЬ! Спасибо! PS Посоветуйте книгу по js актуальную) |
Цитата:
Форум Учебник Книги Node.JS скринкаст Стандарт языка Справочник |
Цитата:
Проблема в том, что я ни в начале, ни после уточнения так и не понял постановку задачи. После уточнения: Цитата:
var str = "Type=Cyber_TIME=*_5_K=1.7*"; var str2 = "Type=Cyber_TIME=3_66_K=1.70"; Или var str = "Type=Cyber_TIME=*_5_K=1.7*"; var str2 = "Type=Cyber_TIME=30_6_K=1.70"; Что тогда? |
| Часовой пояс GMT +3, время: 07:17. |