Вопрос бессмысленный - код работает. Между "не работает" и "работает не так, как задумано" есть существенная разница. Попытайтесь её осознать.
params = format({
Зачем здесь вызов format? Не нужен.
params_list = Object.values(params)
console.log(params_list)
for (var v in params_list) {s=s+v+'='+params[v]+'&'}
Вот это конечно дичь дикая. Чтобы такое написать, надо не знать, как работает цикл for-in. Разберитесь. Не нужен тут массив значений, перебирать надо было сразу params.
А вообще, всё это делается гораздо проще:
function format(params, method) {
return `https://api.vk.com/method/${method}?${new URLSearchParams(params)}`;
}
console.log(format({ access_token, version }, method));