Вам нужно создать функцию, которая принимает два массива: texts и arr. Эта функция будет искать соответствия элементов arr в каждой строке texts, считать количество соответствий и возвращать новый массив строк, отсортированный по убыванию количества соответствий.
Вот одно из возможных решений на языке JavaScript:
```javascript
function findMatches(texts, arr) {
// Создаем новый массив для результатов
var result = [];
// Создаем объект для подсчета количества соответствий
var matchCount = {};
// Проходимся по каждой строке в массиве texts
for (var i = 0; i < texts.length; i++) {
var count = 0; // Инициализируем счетчик соответствий в 0
// Проходимся по каждому элементу в arr
for (var j = 0; j < arr.length; j++) {
// Если элемент arr присутствует в текущей строке texts, увеличиваем счетчик на 1
if (texts[i].indexOf(arr[j]) !== -1) {
count++;
}
}
// Сохраняем количество соответствий для данной строки
matchCount[texts[i]] = count;
}
// Сортируем строки в порядке убывания количества соответствий
var sorted = Object.keys(matchCount).sort(function(a, b) {
return matchCount[b] - matchCount[a];
});
// Добавляем строки в результирующий массив
for (var k = 0; k < sorted.length; k++) {
result.push(sorted[k]);
}
return result;
}
// Пример использования:
var texts = [
"apple banana orange",
"orange mango banana",
"banana apple mango",
"strawberry orange apple"
];
var arr = ["apple", "banana"];
var result = findMatches(texts, arr);
console.log(result);
```
Ожидаемый результат:
```
[
"banana apple mango",
"apple banana orange",
"orange mango banana",
"strawberry orange apple"
]
```
В этом примере функция `findMatches` проходится по каждой строке в массиве `texts` и подсчитывает количество соответствий элементам массива `arr`. Затем она сохраняет количество соответствий для каждой строки в объекте `matchCount`. После этого она сортирует строки в порядке убывания количества соответствий и добавляет их в результирующий массив `result`.