@progerstas

Почему не работает код?

function format(params, method) {
    // https://api.vk.com/method/messages.searchConversations?access_token=xxxxxxxxxxxxxxxxxxxxxxb86074f994def38acf3cd5&v=5.52&fields=5&count=5
    s = 'https://api.vk.com/method/'+method+'?'
    params_list = Object.values(params)
    console.log(params_list)
    for (var v in params_list) {s=s+v+'='+params[v]+'&'}
    return s
}

access_token = '25axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

method = 'wall.get'
token = '38fa46d4cччччччччччччч';
version = 5.78

params = format({
    access_token,
    version
})

console.log(format(params, method))

выводит

https://api.vk.com/method/wall.get?0=h&1=t&2=t&3=p&4=s&5=:&6=/&7=/&8=a&9=p&10=i&11=.&12=v&13=k&14=.&15=c&16=o&17=m&18=/&19=m&20=e&21=t&22=h&23=o&24=d&25=/&26=u&27=n&28=d&29=e&30=f&31=i&32=n&33=e&34=d&35=?&36=0&37==&38=u&39=n&40=d&41=e&42=f&43=i&44=n&45=e&46=d&47=&&48=1&49==&50=u&51=n&52=d&53=e&54=f&55=i&56=n&57=e&58=d&59=&&
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Вопрос бессмысленный - код работает. Между "не работает" и "работает не так, как задумано" есть существенная разница. Попытайтесь её осознать.

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));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 18:38
1500 руб./в час
19 апр. 2024, в 18:36
1500 руб./за проект
19 апр. 2024, в 18:36
30000 руб./за проект