如何从对象数组中检索随机对象?使用Javascript

时间:2015-04-28 21:23:25

标签: javascript jquery

我有一些代码可以将图像添加到'imageContainer'

$('.imageContainer').prepend('<img id="xboxLogo" src="images/xboxLogo.png"/>')

我有这个对象数组:

var imagesArray = { 
    xboxLogo : {
        id : 'xboxLogo';
        src: "images/xboxLogo.png";     
    },
    playStatLogo : {
        id : 'playStatLogo';
        src: "images/playStatLogo.png"; 
    },
    wiiLogo : {
        id : 'wiiLogo';
        src: "images/wiiLogo.png";  
    }
    }

我想要做的是有一个我调用的函数,它将图像添加到'imageContainer'但我希望从'imagesArray'中随机选择图像。如何随机获取3个(xbox,playStation,wii)图像中的一个,然后检索它们的属性,以便我可以使用它们来创建图像?

2 个答案:

答案 0 :(得分:3)

&#13;
&#13;
var imagesArray = [
  {
    id: 'xboxLogo',
    src: "images/xboxLogo.png"
  },
  {
    id: 'playStatLogo',
    src: "images/playStatLogo.png"
  },
  {
    id: 'wiiLogo',
    src: "images/wiiLogo.png"
  }
];

$('button').click(function() {
  var randomImage = imagesArray[Math.floor(Math.random() * imagesArray.length)];
  $('p').text(randomImage.src);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p></p>

<button>pick random</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

生成一个随机数,该数字将成为所需图像的索引。

var keys = Object.keys(imagesArray);
var n = keys.length;
var index = Math.floor(Math.random() * n);
var randomKey = keys[index]
var image = imagesArray[randomKey]