Как удалить из массива слова имеющие определённую комбинацию букв

434
27 ноября 2017, 20:41

Вот текст задачи:

Исключить из введенного предложения все слова, которые содержат заданную пользователем комбинацию из двух символов.

Что пытался сделать я

Пытался пропускать массив через цикл, например ["Привет", "Как", "Дела"] В ходе цикла брал первое слово, и через .split('') расщеплял его на буквы - ["П","р","и","в","е","т"].

Далее через вложенный цикл проверял, если ли буквы совпадающие с комбинацией. Тут и возникли проблемы,не получается проверить, есть ли обе буквы в слове. Так же не знаю, как удалить из массива слово в котором будет совпадение.

Код, который уже есть:

var input = document.getElementById('input');
var key = document.getElementById('key');
var button = document.getElementById('button');
button.addEventListener('click', keyDeleter); 
function keyDeleter() { 
  var Arrkey = key.value.split('');
  var ArrValue = input.value.split(' ');
  for(var i = 0; i < ArrValue.length; i++) {
    console.log(ArrValue);
    var newArr = ArrValue[i].split(''); // Расщепление на буквы 
    console.log(newArr); 
    for(var j = 0; j < newArr.length; j++) {
       if(newArr[j] == Arrkey[0]) {
          console.log('Совпадение');
       }
    }
  }
} 
Answer 1
function deleteElemsWith (arr, str) {
    for (let i = arr.length - 1; i >= 0; i--) {
        if(arr[i].includes(str)) {
            delete arr[i]
        }
    }
    return arr;
}
let newArr = deleteElemsWith(['aabbcc', 'aacc', 'zzz'], 'aa');
console.log(newArr); // ,,zzz
Answer 2

let strs = ["Быть или не быть — вот в чём вопрос.","Достойно ли терпеть безропотно позор судьбы","Иль нужно оказать сопротивленье?","Восстать, вооружиться, победить","Или погибнуть, умереть, уснуть?","И знать, что этим обрываешь цепь сердечных мук","И тысячи лишений, присущих телу!"]; 
let result = document.querySelector('#result'); 
 
document.querySelector('#inp').addEventListener('input', function(){ 
  let val = this.value.trim().substr(0, 2); 
   
  if(val.length !== 2){ 
    result.innerHTML = ''; 
    return; 
  } 
   
  result.innerHTML = strs.map(s => !s.includes(val) ? s : `<span class='found'>${s}</span>`).join("\n"); 
});
.found{ 
  color: lightblue; 
} 
input{ 
  width: 50%; 
}
<input type='text' id='inp' placeholder='Введите 2 символа (e. g. бы)!' maxlength='2' /> 
<pre id='result'></pre>

READ ALSO
Таймер js не работает

Таймер js не работает

Здравствуйте,не работает таймер js,подключения файла проверял,всё работает,пишу точно так же,как было указано на различных источниках,Js не отключён,в...

215
изменить содержимое тега на определенной странице в Google Chrome

изменить содержимое тега на определенной странице в Google Chrome

Как изменить на определенной странице нужно изменить содержимое тега, вот этого! table class="table term-marks" Есть вот такой код, но он работает на всю...

310
Проблемы с копированием текста из VK

Проблемы с копированием текста из VK

При копировании текста из вк сохраняются все тэгиНаписал скрипт, который удаляет все тэги, но текст вставляется 2 раза

282
Перенос строки в JSON

Перенос строки в JSON

Не смог найти ответ на вопрос как перенести строку в файле JSON для увеличения читабельности и вообще удобства, записывать в одну строку длинное...

1744