这可能是一个愚蠢的问题,但我想快速解决这个问题。
我有默认颜色数组:
foreg:defColors = ['green', 'yellow'];
我有另一个列
cols = ['lowest', 'low', 'medium', 'high', 'highest'];
我有cols
数组中前三项的值。
filler = ['lowest': 'darkred', 'low': 'red'];
现在我想将值分配给cols
数组的其余值,并使它看起来像这样:
filler = [lowest: 'darkred', low: 'red', medium: 'green', high: 'yellow', highest: 'green']
这可能很棘手,但我想要这样,所以如果默认颜色有2个项目,它会在循环中为col项目中的所有剩余项目分配其值。
注意:我还有一个col数组的数组没有像这样赋值:
remainingKeys = ['medium', 'high', 'highest'];
答案 0 :(得分:1)
您可以使用Array#forEach
迭代remainingKeys
并更新filler
对象的属性(请注意,因为它不是数组,所以应该用大括号括起来而不是方形的)。 remainder operator(%
)在此处用于从重复模式中选择defColors
数组中的颜色。
var defColors = ['green', 'yellow']
var cols = ['lowest', 'low', 'medium', 'high', 'highest']
var filler = {'lowest': 'darkred', 'low': 'red'}
var remainingKeys = ['medium', 'high', 'highest'];
remainingKeys.forEach(function (key, i) {
this[key] = defColors[i % defColors.length]
}, filler)
console.log(filler)
.as-console-wrapper { min-height: 100%; }