Javascript 确定随机数据是独一无二的

Javascript 确定随机数据是独一无二的,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在通过一个API提取三个随机记录,我想确保没有一个记录是相同的。如何编辑代码,使其检查记录是否唯一 这是我目前的代码: $.ajax({ url: ajaxUrl, type: "GET", dataType: "json", success: function (data) { var person1 = data.records[1 + Math.floor(Math.random() * 9)];

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

谢谢

如果您的
数据.records
是数组而不是对象,请使用带有0到
.length
的随机数的
拼接
删除并返回数组元素,而不必担心重复。详情如下:

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


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

从响应中删除名称,例如为乐透抽奖


1。记住以前的答案。2.不要复制它们--或者——生成数字1-9,随机化,然后随机选择三个。类似于以下内容:什么属性使响应唯一?回答是什么样子的?
name
属性都是唯一的。@T.J.Crowder,虽然这个问题与我的问题有点类似,但代码是针对提问者的具体情况而特别指定的。我的问题已经足够不同了,如果不仅仅是因为它引出了一个全新的答案,而不是mccannf所指的问题……我不确定我是否明白……你有大量的记录。以破坏性方式将记录从池中拉出,则无法复制该记录。例如,使用
Array.shift()
(docs:)。我现在就知道了。。。与@Sébastien的答案非常相似,但没有代码。谢谢你!和他的答案一模一样。。。当我发布时,它还没有进入我的浏览器。一定很好。谢谢你,这对我的处境很有效。