制作某些随机数据是独一无二的

时间:2013-05-23 21:41:56

标签: javascript jquery ajax

我通过API提取三个随机记录,我想确保没有任何记录是相同的。如何编辑我的代码以便检查记录是否唯一?

这是我目前的代码:

$.ajax({
        url: ajaxUrl,
        type: "GET",
        dataType: "json",
        success: function (data) {
            var person1 = data.records[1 + Math.floor(Math.random() * 9)];
            var person2 = data.records[1 + Math.floor(Math.random() * 9)];
            var person3 = data.records[1 + Math.floor(Math.random() * 9)];
            $(".one").html(person1.name);
            $(".two").html(person2.name);
            $(".three").html(person3.name);
        },
        error: function () {
            alert("boo!");
        }
  });

由于

2 个答案:

答案 0 :(得分:3)

如果您的data.records是一个数组而不是一个对象,请使用splice和0到.length之间的随机数来删除和返回数组元素,而不必担心重复。如下:

var data = ["Gary","Fred","Seb","Garrett"];
while (data.length) {
   alert(data.splice(Math.floor(Math.random() * data.length), 1)[0]);
}

小提琴:http://tinker.io/7c898

请注意,这假设原始数组已经是唯一的。

答案 1 :(得分:1)

从响应中删除名称,例如提取乐透的数字......

http://jsbin.com/ulisat/3/