在数组中的对象值后添加逗号

Add comma after object value in array

我正在尝试获得如下结果,以便调用 SQL 查询。它是一个对象数组(每个对象都有一个键,这将是 VALUE 和一个值。值必须用单引号括起来,末尾有逗号):

[
  { VALUE: 'A', },
  { VALUE: 'B', },
  { VALUE: 'C', },
  { VALUE: 'D', },
  { VALUE: 'E', },
  { VALUE: 'F' }
]

我试过使用 for 函数,在该函数中我为列表中的每个元素添加了一个对象。这是我得到的结果:

代码:

    let arr = [];
    const len = reqBody.values.length;

    for (let i = 0; i < len; i++)
    {
        arr.push( { VALUE: reqBody.values[i] } )
    }

结果:

[
  { VALUE: 'A' },
  { VALUE: 'B' },
  { VALUE: 'C' },
  { VALUE: 'D' },
  { VALUE: 'E' },
  { VALUE: 'F' }
]

我尝试使用 map 箭头函数并在其末尾添加 join 以便尝试在每个值后添加逗号(因此对于结果的第二行代码类似于:{ VALUE: 'A', }) 但我无法让它工作,因为 returns 一个字符串数组,而不是我需要的对象。

这是上面描述的代码:

代码:

let arr = [];
const len = reqBody.values.length;

for (let i = 0; i < len; i++)
{
    arr.push(Object.values({ VALUE: reqBody.values[i] }).map(v => `{ VALUE: '${v}', }`).join(','))
}

结果:

[
  "{ VALUE: 'A', }",
  "{ VALUE: 'B', }",
  "{ VALUE: 'C', }",
  "{ VALUE: 'D', }",
  "{ VALUE: 'E', }",
  "{ VALUE: 'F', }",
]

有什么方法可以将 map 函数中的字符串转换为对象吗?

您需要将整个事物构造为串联字符串,而不是数组。

let reqBody = {
  values: ['A', 'B', 'C']
};

let items = reqBody.values.map(v => `{ VALUE: '${v}', }`);
let result = '[\n  ' + items.join(',\n  ') + '\n]';
console.log(result);