Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2018, 14:08
Новичок на форуме
Отправить личное сообщение для nekit44 Посмотреть профиль Найти все сообщения от nekit44
 
Регистрация: 09.07.2018
Сообщений: 6

Помогите решить задачу
Добрый день

Помогите плиз решить задачу на 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);


Помогите плиз

Последний раз редактировалось nekit44, 09.07.2018 в 14:30.
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2018, 14:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

str = str.replace(/\*/g,'')
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2018, 14:29
Новичок на форуме
Отправить личное сообщение для nekit44 Посмотреть профиль Найти все сообщения от nekit44
 
Регистрация: 09.07.2018
Сообщений: 6

не, нужно номера букв в строке 2 удалить там где стоит * в строке 1
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2018, 14:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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);
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2018, 14:44
Новичок на форуме
Отправить личное сообщение для nekit44 Посмотреть профиль Найти все сообщения от nekit44
 
Регистрация: 09.07.2018
Сообщений: 6

Сообщение от рони Посмотреть сообщение
код
Спасибо огромное!
Я был почти у цели)
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2018, 14:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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);

Последний раз редактировалось рони, 09.07.2018 в 15:18.
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2018, 15:32
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Ходы кривые роет...

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, 09.07.2018 в 15:43.
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2018, 15:47
Новичок на форуме
Отправить личное сообщение для nekit44 Посмотреть профиль Найти все сообщения от nekit44
 
Регистрация: 09.07.2018
Сообщений: 6

Dilettante_Pro, идея прикольная но не работает
Ответить с цитированием
  #9 (permalink)  
Старый 09.07.2018, 15:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Dilettante_Pro,
какой из вариантов работает и где?
Ответить с цитированием
  #10 (permalink)  
Старый 09.07.2018, 15:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


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);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу по jQuery sasha3611 jQuery 1 27.12.2017 12:16
Помогите решить задачу. Alex14 Javascript под браузер 2 29.03.2017 12:18
Помогите решить задачу! Vor_tex Общие вопросы Javascript 0 24.06.2016 13:05
Пожалуйста помогите решить задачу на java alex01rus1991 Элементы интерфейса 9 27.11.2012 01:02
Помогите решить задачу vkg Общие вопросы Javascript 1 20.02.2008 11:59