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

Posted

技术标签:

【中文标题】用另一个不同长度的数组更新对象数组【英文标题】:Updating an array of objects with another array of different length 【发布时间】:2021-07-30 21:25:38 【问题描述】:

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

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'
  ]

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

【问题讨论】:

【参考方案1】:

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

见: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;
  )
);

【讨论】:

以上是关于用另一个不同长度的数组更新对象数组的主要内容,如果未能解决你的问题,请参考以下文章