如何将数组转换为jQuery插件属性对象/数组

时间:2011-03-29 02:33:24

标签: jquery arrays plugins

可能很简单的问题,我之前从未这样做过......我正在试图弄清楚如何填充jQuery插件属性对象/数组或者你称之为...的正常数组。 / p>

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

所以,我试图把它变成......带有未知数量图像的插件属性“图像”......

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 个答案:

答案 0 :(得分:2)

使用$.map

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

答案 1 :(得分: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()循环内的对象创建一个新的。

答案 2 :(得分:0)

为什么不定义你需要的数组而不是定义一个并转换?

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

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