Я хотел бы написать функцию, которая будет искать поля объектов в массиве для конкретной строки, добавляя этот объект в новый массив, если строка найдена в любом из полей объекта.Я заставил свою функцию работать, но возникла проблема с новым списком, содержащим несколько копий объектов, которые содержат несколько копий искомой строки.Я знаю, что это потому, что я зациклил его, чтобы каждое поле, в котором он находил строку, добавляло объект еще раз в новый массив.Однако я не был уверен в том, каким альтернативным способом я мог бы написать функцию добавления объекта только один раз, независимо от того, сколько его полей совпало с искомой строкой.Это моя функция:
function search (keyword, array){
var newArray = [];
for(let i = 0; i < array.length; i++) {
for (key in array[i]) {
if(array[i][key].includes(keyword)){
newArray.push(array[i]);
}
}
}
return newArray;
}
Пример, где вывод проблематичен, если я сделаю:
console.log(search('yes', myArray))
И если myArray содержит объект, в котором «да» появляется в 3различные поля, он добавит этот объект в newArray 3 раза.