用另一个不同长度的数组更新一个对象数组

Updating an array of objects with another array of different length

我有一个包含单个键值对的对象数组,以及一个长度可能小于对象数组的字符串数组。

let objectArray = [
    {foo: ''},
    {foo: ''},
    {foo: ''},
    {foo: ''},
    {foo: ''}
  ]

let stringArray = ['a','b','c']

我想按顺序将字符串数组分配给对象数组中的 foo 键。如果长度较短,字符串数组将被重用。例如,想要的输出是:

let result = [
    {foo: 'a'},
    {foo: 'b'},
    {foo: 'c'},
    {foo: 'a'},
    {foo: 'b'}
  ]

实现此结果的最有效方法是什么?

您可能想要使用余数 (%) 运算符来“环绕”。

参见:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Remainder


let objectArray = [
  {foo: ''},
  {foo: ''},
  {foo: ''},
  {foo: ''},
  {foo: ''}
];
let stringArray = ['a','b','c'];

console.log(
  objectArray.map((elem, idx) => {
    elem.foo = stringArray[idx % stringArray.length];
    return elem;
  })
);