2013-04-16 6 views
0

У меня есть два объектакак объединить два объекта

var defPathValues={'id':'','fill':'','fill-opacity':'','stroke-width':'','stroke-linecap':'','stroke-linejoin':'', 
         'stroke':'','d':'','transform':''}; 

var options={'id':'ele1', 'fill':'white'}; 

Я хочу, чтобы объединить эти два объекта и удалить другие пустые свойства из defPathValues ​​(т.е. на основе вариантов мы прошли).

После слияния я хочу установить эти атрибуты в элементе svg path.

до того, что у меня возникают как

var path = document.createElementNS(this.svgLink, "path"); 
     $(path).attr({ 
      'id': this.SvgObject.id+ "_" + series.Name + "_"+ seriesIndex, 
      'fill': 'none', 
      'stroke-width': style.SeriesStyle.BorderWidth, 
      'stroke': style.SeriesInterior, 
      'stroke-linecap': style.SeriesStyle.LineCap, 
      'stroke-linejoin':style.SeriesStyle.LineJoin,  
      'd': direction, 

     }); 

вместо того, что я хочу, чтобы установить объект непосредственно атр из элемента пути. как я могу это сделать ?

ответ

0

Это может быть не самое элегантное решение, но я уверен, что это сработает: я предполагаю, что вы ранее определяли defPathValues ​​и параметры как объекты JS до того, как этот код запускается.

for(var i in options) defPathValues[i] = options[i]; 

var newDefPathValues = {}; 
for(var i in defPathValues) { 
    if(typeof defPathValues[i] == 'undefined' || defPathValues[i] == '' || defPathValues[i] == null) continue; 
    newDefPathValues[i] = defPathValues[i]; 
} 
defPathValues = newDefPathValues; 
Смежные вопросы