在随机化后从数组中删除一个项
Deleting an item from an array after randomization
所以这里有一个包含两个不同的图像url的数组。我的代码要求将数组随机化,并将随机化的src放入其中一个img标记中。如下图所示:
var movieArray = ['http://gdj.gdj.netdna-cdn.com/wp-content/uploads/2011/12/grey-movie-poster.jpg', 'http://www.hollywoodreporter.com/sites/default/files/custom/Blog_Images/avengers-movie-poster-1.jpg'];
var randomSrc1 = movieArray[Math.floor(Math.random() * movieArray.length)];
var randomSrc2 = movieArray[Math.floor(Math.random() * movieArray.length)];
$('#movie1_img').attr('src', '' + randomSrc1 + '');
$('#movie2_img').attr('src', '' + randomSrc2 + '');
这工作得很好,但现在有两个图像是相同的问题。我不知道该怎么预防。在第一个src给movie1_img标签后,我需要使用.grep或其他东西从数组中删除该src吗?
尝试使用Array.prototype.slice()
, Array.prototype.splice()
var movieArray = ['http://gdj.gdj.netdna-cdn.com/wp-content/uploads/2011/12/grey-movie-poster.jpg', 'http://www.hollywoodreporter.com/sites/default/files/custom/Blog_Images/avengers-movie-poster-1.jpg'];
// create copy of `movieArray`
var movies = movieArray.slice();
// get random item from within `movies`
var randomSrc1 = movies.splice(Math.floor(Math.random() * movies.length), 1);
// get remainding item from within `movies`
var randomSrc2 = movies.splice(0, 1);
重新排列数组:
function shuffle(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}
var movieArray = shuffle(['http://gdj.gdj.netdna-cdn.com/wp-content/uploads/2011/12/grey-movie-poster.jpg', 'http://www.hollywoodreporter.com/sites/default/files/custom/Blog_Images/avengers-movie-poster-1.jpg']);
$('img[id^=movie][id$=_img]').attr('src', function(i){
return movieArray[i];
});
-jsFiddle -
相关文章:
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 删除“;上一个“;以及“;下一个“;基于当前幻灯片
- 从输入值中删除最后一个单词
- 如果另一个属性相同,请删除该属性
- 编写一个函数需要帮助,该函数接受一个数组和一个元素,并返回一个删除了所有元素的数组
- Javascript,在按下按钮时添加一个删除CSS(重新加载快门)
- 想要使用javascript向该代码添加一个删除图像
- 试图创建一个删除自身的表行
- 创建一个删除其左侧的函数
- 我如何在<选择>并在jquery中的每行添加一个删除按钮
- 如何在行开始时放置一个删除按钮,我正在复制到另一个表
- 在AngularJS中,当ng-repeat下的用户列表中的一个复选框被选中时,显示一个删除按钮的简单方法
- 如何使一个删除按钮永久删除
- 提示一个删除弹出窗口以确认删除- gridviewasp.net
- 如何使用jQuery在选择HTML控件之外放置一个删除按钮图标
- 为jquery-ui可排序列表中的每个项目添加一个删除按钮
- 在 jQuery 中列表中的每一行前面添加一个删除图标
- 通过JQuery在mvc-5中执行一个删除操作
- 创建一个“删除字段”按钮,在动态添加新字段后