2013-08-14 4 views
0

Может возникнуть вопрос с простым ответом, но я не могу его найти.Назначить массив javascript для создания другого массива

Есть более простой способ сделать это:

$('#' + array_with_ID[0]).css('width', array_with_px_value[0] + 'px'); 
$('#' + array_with_ID[1]).css('width', array_with_px_value[1] + 'px'); 
$('#' + array_with_ID[2]).css('width', array_with_px_value[2] + 'px'); 
$('#' + array_with_ID[3]).css('width', array_with_px_value[3] + 'px'); 
$('#' + array_with_ID[4]).css('width', array_with_px_value[4] + 'px'); 
etc... 
+1

Не могли бы вы показать нам свой массив? – George

+0

a for-loop может помочь здесь –

ответ

3
for (var i = 0, l = Math.max(array_with_ID.length, array_with_px_value.length); i < l; ++i) { 
    $('#' + array_with_ID[i]).css('width', array_with_px_value[i] + 'px'); 
} 

Что-то, как это должно помочь. Вам даже не нужен Math.max, если вы знаете, что они всегда будут одинаковой длины.

+0

Довольно многое, что я собирался опубликовать; но вы должны, вероятно, иметь '.length' в конце обоих этих аргументов Math.max, правильно? – Katana314

+0

@ Katana314 видел, что пока я добавлял описание. Было бы определенно получить плохие результаты ... – kalley

+0

Проблема с использованием массивов разной длины заключается в том, что я уверен, что исключение произойдет, если он не сможет найти элемент в этой позиции? «Math.min» может быть лучшим вариантом? – Darkzaelus

0
var array_with_ID = ['div1', 'div2', 'div3', 'div4', 'div5', 'div6', 'div7']; 
var array_with_px_value = [ 210, 220, 230, 240, 250, 260, 270 ]; 

$(array_with_ID).each(function(i){ 
    $('#' + this).css('width', array_with_px_value[i] + 'px'); 
}); 

JQuery each будет цикл через массивы.

jsFiddle

Смежные вопросы