用另一个不同长度的数组更新一个对象数组
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;
})
);
我有一个包含单个键值对的对象数组,以及一个长度可能小于对象数组的字符串数组。
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;
})
);