-1

我正在通过 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!");
        }
  });

谢谢

4

2 回答 2

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

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

于 2013-05-23T21:51:49.550 回答
1

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

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

于 2013-05-23T21:53:08.953 回答