Помогите решить задачу
Добрый день
Помогите плиз решить задачу на 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, время: 14:49. |