为整个键组分配2个值

时间:2017-03-27 06:58:46

标签: javascript arrays

这可能是一个愚蠢的问题,但我想快速解决这个问题。

我有默认颜色数组:

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

1 个答案:

答案 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%; }