Я не знаю ответа, но мне нравится вносить свой вклад в это дело за то, что он стоит. Было бы здорово, если бы они выпустили justify-self
для flexbox, чтобы сделать его действительно гибким.
В моем убеждении, когда на оси есть несколько элементов, наиболее логичным способом поведения justify-self
является согласование с ближайшими соседями (или ребрами), как показано ниже.
Я действительно надеюсь, что W3C будет смотреть это и, по крайней мере, подумает об этом. =)
Таким образом, вы можете иметь элемент, который по-настоящему центрирован независимо от размера левого и правого окна. Когда один из ящиков достигает точки центрального блока, он просто нажимает его, пока не будет больше места для распространения.
Легкость сделать удивительные макеты бесконечными, взгляните на этот «сложный» пример.
Вы можете добавить индекс для ключей из тех же массивов и вернуть новый объект для каждого вложенного массива.
function getFlat(array) {
return array.reduce((r, o, i) => {
Object
.entries(o)
.forEach(([k, v]) => Object.assign(r, Array.isArray(v)
? getFlat(v)
: { [[k, i].join('_')]: v }
));
return r;
}, {});
}
var data = [{ dimensionId: 1, dimensionName: "dimensionName1", components: [{ componentId: 2, componentName: "componentName2", indicators: [{ indicatorId: 3, indicatorName: "indicatorName3" }, { indicatorId: 4, indicatorName: "indicatorName4" }] }, { componentId: 5, componentName: "componentName5", indicators: [{ indicatorId: 6, indicatorName: "indicatorName6" }, { indicatorId: 7, indicatorName: "indicatorName8" }] }] }];
console.log(getFlat(data));
.as-console-wrapper { max-height: 100% !important; top: 0; }