var string = '[Силикат] состоит из следующих элементов: (Шлак), (Цемент), (Добавки). Практичный стройматериал.'
var material_name = string.split('[')[1].split(']')[0]; // Силикат
var material_components = string.match(/\([^\)]*\)/g)//(Шлак), (Цемент), (Добавки)
var materials = {
"Красный кирпич": {"Глина" : 10, "Цемент" : 5, "Вода" : 8},
"Белый кирпич": {"Песок" : 5, "Цемент" : 4,"Вода" : 3}
}
function f (obj,a,b) {
obj[a] = {}
for(var i = 0; i < b.length; i++) obj[a][b[i]] = null;
}
f(materials,material_name, material_components)
alert(JSON.stringify(materials))