我有一堆JavaScript对象是通过迭代从DB读取的两个JSON数组构建的,每个JSON数组的长度相同。在某些情况下,这些数组中的一个需要由相同的值组成,重复。因此,为了节省空间/杂乱,而不是存储重复相同值的数组,我只想用单值存储它,然后在“对象构造”时重复它。什么是最好的(最惯用的?最安全的?)方法来实现这一目标?目前我在做:
var array1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
var array2 = [1, 7, 9];
array1.map(function(val, i) {
var obj = {
foo: val,
bar: array2[i] || array2[array2.length-1]
};
return obj;
});
因此,如果未定义array2[i]
的值,则使用数组中 last 位置的值,以便将其重复到适当的长度(这也包括只需要重复数组中最后N个值的情况,这也是我需要适应的情况。)
这有什么问题吗?是否有更好的(更优雅,更惯用,或其他)方式?