1

这行得通,但是如果数组很大,把所有的键$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
            }
          })
      ]
    })
};  
4

2 回答 2

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;
    })()
})

检查演示小提琴

于 2013-06-04T00:30:47.120 回答
1

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

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

$.slideshow('slideshow', {
    backgrounds: $srcs
})
于 2013-06-04T00:35:13.827 回答