как добавить условие в js скрипт?

для массового добавления в друзья вк, я использую это:

javascript:var buttons=document.getElementsByClassName('friends_find_user_add'); 
console.log(buttons); for(key in buttons){buttons[key].click();}

Мне нужно, чтобы скрипт добавлял только тех людей, с кем n-ое кол-во общих друзей.

скрипт ниже выводит такого формата текст - 1308 общих друзей

var div = document.getElementsByClassName("friends_find_user_label");
for (var i = 0; i < div.length; i++)
console.log(div[i].innerHTML);

Ответы (1 шт):

Автор решения: OPTIMUS PRIME

Простой вариант:

let buttons = document.querySelectorAll('.friends_find_user_add');
let info = document.querySelectorAll(".friends_find_user_label");

for (let i = 0; i < info.length; i++) {
  let mutual_friends = Number( info[i].textContent.match(/\d*/)[0] );
  if (mutual_friends > 5) buttons[i].click();
}

Называется "регулярное выражение", \d - digit, цифры. * - ноль или много совпадений подряд.
.match() возвращает массив совпадений (строки), откуда достается первый [0] элемент (число целиком) и превращается непосредственно в число, через Number()


Но браузер не любит, когда скрипт сразу кликает по сотням кнопок. Поэтому, было бы правильнее кликать циклом, добавив небольшую задержку после каждого клика. Примерно так:

let buttons = document.querySelectorAll('.friends_find_user_add');
let info = document.querySelectorAll(".friends_find_user_label");

let add_friends = [...buttons].filter((_,i) => info[i].textContent.match(/\d*/)[0] > 5);
// Оставляет только те кнопки, на которые надо кликать.
// google → "JS массивы", "spread оператор", "Array filter", "Стрелочные функции"

let i = 0;
(function _loop() {
  add_friends[i].click();

  if (add_friends[++i]) setTimeout(_loop, 250); // в миллисекундах. По 4 клика в секунду
  // Каждый раз, увеличивая `i`, если в массиве еще есть элементы,
  // функция через таймер вызывает саму себя.
})();

>> https://learn.javascript.ru/
>> https://developer.mozilla.org/ru/

P.s. Фигурные скобки в условиях пропущены, потому что они выполняют одну короткую строчку кода. Если строчка кода длинная, или код многострочный, пишут так:

if (условие) {
  // код...
  // код...
  // код...
}
→ Ссылка