Проблема в том, что у вас сначала l oop с @for
, перебирающим все значения $statistics
, а затем @each
, делающими то же самое, что приводит к повторным значениям. Это должно быть сделано с одним l oop. Я могу придумать два способа достижения того, что вы хотите:
.row {
@for $i from 1 through length($statistics) {
$variable: nth($statistics, $i);
.col:nth-child(#{$i}) {
color: var(--#{$variable});
}
}
}
или
.row {
@each $variable in $statistics {
$i: index($statistics, $variable);
.col:nth-child(#{$i}) {
color: var(--#{$variable});
}
}
}
В случае переменной, определенной как:
$statistics: (
"header": ("first", "second", "third")
);
Вы можно использовать map-get
для получения переменных. Примерно так:
$header: map-get($statistics, "header");
@each $variable in $header {
$i: index($header, $variable);
.col:nth-child(#{$i}) {
color: var(--#{$variable});
}
}
Это то же самое, что и раньше, но цикл с $header
вместо $statistics