如何通过发布请求循环值?

问题描述

你好,我正在使用 Javascript,我想通过 post 请求循环值,所以这是我目前代码的一部分

  var pid = 'B2411A07C-Q110036000'
  var body = `[{\"id\":\"e7f9dfd05f6b992d05ec8d79803ce6a6bcfb0a10972d4d9731c6b94f6ec75033\",\"variables\":{\"addToCartInput\":{\"productId\":\"",\"clientMutationId\":\"addToCartMutation\"}}}]`;
  body = JSON.parse(body);
  body[0].variables.addToCartInput.productId = pid;
  body = JSON.stringify(body)
const fetchit = await fetch(`https://www.site.de/add-to-cart/`,{
                method: 'POST',body: body,

所以对于单个 pid 它可以工作,但我希望它可以使用更多的 pid,这样它们就可以用 ',' 分割,然后通过请求的主体循环每个值,如

var pid = 'B2411A07C-Q110036000','B2411A07C-Q110036010','B2411A07C-Q110036020'

我该怎么做? 我尝试了很多东西,但遗憾的是没有任何效果

解决方法

您可以使用简单的 map()

let pid = ['B2411A07C-Q110036000','B2411A07C-Q110036010','B2411A07C-Q110036020']
let body = `[{\"id\":\"e7f9dfd05f6b992d05ec8d79803ce6a6bcfb0a10972d4d9731c6b94f6ec75033\",\"variables\":{\"addToCartInput\":{\"productId\":\"",\"clientMutationId\":\"addToCartMutation\"}}},{\"id\":\"e7f9dfd05f6b992d05ec8d79803ce6a6bcfb0a10972d4d9731c6b94f6ec75033\",\"clientMutationId\":\"addToCartMutation\"}}}]`;
body = JSON.parse(body);
body = body.map((b,i) => {
  if (pid.length >= i) b.variables.addToCartInput.productId = pid[i];
  return b;
})
//body[0].variables.addToCartInput.productId = pid;
console.log(body)
body = JSON.stringify(body)