迭代数组以向幻灯片放映添加值

时间:2013-06-04 00:28:43

标签: javascript jquery

这样可行,但是如果数组很大,那么烦人的就是放置所有键$arr[0]$arr[1]等等。

$arr = shuffleArray(photos);

$.slideshow('slideshow', {
    backgrounds: [{
        src: $arr[0]
      }, {
        src: $arr[1]
      }
    ]
  })

所以,我需要这样的东西,但有一些错误,因为幻灯片停止工作,JS控制台是空的。

function slideshow() {
  $arr = shuffleArray(photos);
  $.slideshow('slideshow', {
      backgrounds: [
        $.each($arr, function (key, value) {
            {
              src: value
            }
          })
      ]
    })
};  

2 个答案:

答案 0 :(得分:3)

backgrounds: [
        $.each($arr, function (key, value) {
            {
              src: value
            }
          })
      ]

需要一个对象数组

所以你需要将它包装在一个以该格式返回值的函数中。

$arr = shuffleArray(photos);

$.slideshow('slideshow', {
    backgrounds: (function () {
        var temp = [];
        $.each($arr, function (key, value) {
            temp.push({
                src: value
            });
        });
        return temp;
    })()
})

<强> Check Demo Fiddle

答案 1 :(得分:1)

您可以使用$.map()将数组从一种格式转换为另一种格式

$arr = shuffleArray(photos);
var $srcs = $.map($arr, function(val, index){
    return {
        src: val
    }
})

$.slideshow('slideshow', {
    backgrounds: $srcs
})