Remplazar каждая стоимость цепи с данными array js

Remplazar каждая стоимость цепи с данными array с js или jquery

var numbers = ["0:00", "0:01", "0:05"];
for (var i = numbers.length - 1; i >= 0; i--) {

   str = "0:00 oki 0:01".split(numbers[i]).join("");
    //console.log(str);
}
console.log(str);

Он возвращает меня oki 0:01 И мне нужно, чтобы он возвратился только oki

2
задан 27.08.2016, 06:23
3 ответа

Если я не понял плохо, тебе нужно, чтобы в string были выданы составные части, которые совпадают с первым array и остались только те составные части string, которые не обладают сходством, и снимать пространства в белом, хороший я не использовал бы цикл for для этого, лучше взял бы метод array объекта, Array.prototype.filter, чтобы иметь вышеупомянутый результат, твой код оказался бы таким:

var numbers = ["0:00", "0:01", "0:05"];
var str="0:00 oki 0:01";
str = str.split(' ').filter(function(value){ 
   return numbers.indexOf(value) == -1 // Si el valor no existe devolvera true por lo tanto sabremos que valores no estan en el primer array y los filtrara, esto devuelve ["oki"]
} ).join('');
console.log(str) // salida --> oki
1
ответ дан 24.11.2019, 13:33
  • 1
    Функционируй с пропорциональным string, но est и # 225; s понимая, что данные приходят отделенные местом. Не функционировать и # 237; если string было '0:00oki0:01' –  Jose Hermosilla Rodrigo 27.08.2016, 17:29

Проблема состоит в том, что каждое возвращение локона вновь обрабатывает законченную цепь, что ты должен делать, состоит в том, чтобы определять цепь вне локона. Я добавил его .trim () в конце концов чтобы удалять пространства в мишени.

var numbers = ["0:00", "0:01", "0:05"];
var str="0:00 oki 0:01";
for (var i = numbers.length - 1; i >= 0; i--) {

   str = str.split(numbers[i]).join("").trim();
    //console.log(str);
}
console.log(str);
1
ответ дан 24.11.2019, 13:33

Я думаю, что самое удачное решение состояло бы в том, чтобы использовать регулярное выражение:

var numbers = ["0:00", "0:01", "0:05"];
var reg = new RegExp(numbers.join('|'), 'g');
var nuevoStr = 
    '0:00 oki 0:01'
              .replace(reg, '') // Cambia los valores capturados con el RegExp
              .trim();          // Elimina los espacios en blanco
console.log(nuevoStr);
0
ответ дан 24.11.2019, 13:33

Теги

Похожие вопросы