Вот такая проблема:
Есть массив, в который будут попадать строки. В этих строках несколько слов будут повторятся. Эти повторяющиеся слова надо будет убрать в другой массив по одному.
Например:
Из строки "Дом лошадь трактор дом собака", нам надо создать массив в котором будет лежать только слово "дом", потому, что оно повторяется.
Вот такой код я написал, но он мне все слова по одному сует в новый массив
window.onload = function() {
function CheckStr(str) {
var newStr = [];
var words = str.split(' ');
for (var word of words) {
if(words.indexOf(word, 0) !== -1) newStr += word + " ";
}
newStr = newStr.trim();
document.getElementById("result").innerHTML = newStr;
}
CheckStr("Дом лошадь трактор бульдозер дом кухня");
}
А проблема в том, что Вы строку разбили на слова, и в строке ищете эти же слова. Естественно они будут совпадать со строкой.
window.onload = function() {
function CheckStr(str) {
var newStr = [];
var words = str.toLowerCase().split(' ');
var result = words.reduce(function(acc, el) { // Посчитали количество одинаковых слов
acc[el] = (acc[el] || 0) + 1;
return acc;
}, {});
Object.keys(result).forEach(function(key, id){ // Если слова повторяются - выводим
if(result[key] > 1) newStr += key + " ";
});
console.log(newStr);
document.getElementById("result").innerHTML = newStr;
}
CheckStr("Дом лошадь лошадь трактор бульдозер дом кухня");
}
<div id="result"></div>
let str = "Дом дом лошадь трактор бульдозер дом кухня кухня";
let arr = str.split(" ");
let words = {};
// Каждое новое слово будет сохраняться в качестве ключа объекта.
// А вместо значения - количество подобных слов в строке.
for( let i = 0; i < arr.length; i++ ){
let word = arr[i].toLowerCase();
words[word] = ( words[word] ) ? words[word] + 1 : 1; // см. `Тернарный оператор`
}
console.log( JSON.stringify( Object.entries(words) ) );
let repeating = Object.entries(words).filter(arr => arr[1] > 1).map(arr => arr[0]);
console.log( repeating.join(", ") );
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как организовать проект с несколькими точками входа? Чтоб собирались 2 сборки с общими компонентами