如何将数组传入jQuery插件属性对象/数组

4

这可能是一个简单的问题,我之前从未做过... 我试图弄清楚如何将普通数组填充到jQuery插件属性对象/数组或者其他叫法中...

var imageArray = new Array();
imageArray = ['images/1000x800.png','images/495x880.png','images/600x800.png'];

所以,我正在尝试将未知数量的图片添加到插件属性“image”中...

jQuery(function($){
  $.myPlugin({
    slides : [
      {image : 'images/1000x800.png'},
      {image : 'images/495x880.png'},
      {image : 'images/600x800.png'},
      //...etc...
    ]
  });
});

这是我试图做的一个示例...虽然我不知道正确的语法...

jQuery(function($){
  $.myPlugin({
    slides : [ for(var i=0; i<imageArray.length; i++) {
                image = imageArray[i];
               }
    ]
  });
});

任何帮助都会受到赞赏!
3个回答

2
使用$.map
var imageArray = ['images/1000x800.png','images/495x880.png', ...];
$.myPlugin({
    slides: $.map(imageArray, function (el) { return {image: el}; });
});

1

这应该将其转换为...

var imageArray = ['images/1000x800.png','images/495x880.png','images/600x800.png'];

for(var i=0; i<imageArray.length; i++) {
   imageArray[i] = {'image': imageArray[i]};
}

jsFiddle

请注意,这将转换原始数组。如果您想要第二个数组,请使用var new = []创建一个新的数组,并在循环内使用new.push()添加对象。


0
为什么不直接定义你需要的数组,而不是定义一个再转换呢?
var imageArray = [
                    { image: 'images/1000x800.png' },
                    { image: 'images/495x880.png' },
                    { image: 'images/600x800.png' }
                 ];

jQuery(function($) {
    $.myplugin( { slides: imageArray } );
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接