2013-09-05 7 views
0

Как добавить массив динамически, как в приведенном ниже коде. Я создал многомерный массив в JavaScript, но как я могу нажать src, то есть "/_layouts/15/SSNIT.Portal/Images/ssnit02.jpg" и title, то есть "MyTitle". У меня есть несколько значений, и я повторяю их через них?Как добавить несколько значений в массив

carousel_images_info = [ 
    { src: "/_layouts/15/My.Portal/Images/my1.jpg", title: "ssnit01" }, 
    { src: "/_layouts/15/my3.Portal/Images/my2.jpg", title: "ssnit02" }, 
    { src: "/_layouts/15/my4.Portal/Images/my3.jpg", title: "ssnit03" }, 
    { src: "/_layouts/15/my5.Portal/Images/my4.jpg", title: "ssnit04" }, 
    { src: "/_layouts/15/my5.Portal/Images/ssnit05.jpg", title: "ssnit05" } 
]; 
+0

Пожалуйста, обратите внимание, что эта проблема не имеет ничего ** ** делать с JSON вообще. Вы смешиваете объектные литералы JavaScript (конструкцию синтаксиса языка JavaScript) с JSON (независимым от языка форматом обмена данными, например XML или CSV). Я отредактирую ваш вопрос соответствующим образом. –

+0

Array.prototype.concat создает один массив из двух, просто добавляя каждую запись справа налево. – Eraden

+0

@ Eraden вы можете показать мне пример? Предположим, что у меня эти значения выше? – user2744859

ответ

1

То есть массив, содержащий объекты, вам нужно нажать объект к нему, как:

var new_obj = { 
    src: "/_layouts/15/SSNIT.Portal/Images/ssnit02.jpg", 
    title: "My Title" 
}; 
carousel_images_info.push(new_obj); 
1

Просто нажмите :)

carousel_images_info.push({ 
    title: "MyTitle", 
    src: "/_layouts/15/SSNIT.Portal/Images/ssnit02.jpg" 
}); 

Однако, если вы хотите, чтобы избежать дубликатов, вам придется перебирать весь список, чтобы выполнить сравнение, прежде чем добавить новую строку. Другим решением может быть толкать все, чтобы удалить дубликаты только тогда, когда это необходимо.

0

значение для СРК и название является динамическим, поэтому я могу это сделать, как это?

var item_enumerator = this.items.getEnumerator(); 
    while (item_enumerator.moveNext()) { 
    var item = item_enumerator.get_current(); 
    var image_url = location.protocol + "//" + location.host + item.get_item('FileRef'); 
    var image_title = item.get_item('FileLeafRef'); 
    var set = { 
     src: image_url, 
     title : image_title 
    }; 
    this.carousel_images_info.push(set); 
    } 
+0

Если это правильно, то это должно быть хорошо, но мои изображения каруселей не работают, возможно, потому что this.carousel_images_info обращается сначала к другой функции до ее заполнения. – Louis

+0

'getEnumerator' - что это? Кажется, что код совершенно не связан с вопросом OP. – Bergi

0

Попробуйте это,

var new_obj = {}; 
new_obj.src = "/_layouts/15/SSNIT.Portal/Images/ssnit02.jpg"; 
new_obj.title= "MyTitle"; 

carousel_images_info[carousel_images_info.length] = new_obj 

Так сделайте функцию, если вы делаете это динамически,

carousel_images_info=[]; 

function Insert(xSrc,xTitle) 
{ 
    var new_obj = {}; 
    new_obj.src = xSrc; 
    new_obj.title= xTitle; 

    carousel_images_info[carousel_images_info.length] = new_obj; 
} 

Insert("/_layouts/15/SSNIT.Portal/Images/ssnit02.jpg","MyTitle"); 
Смежные вопросы