Javascript 从随机选择的阵列中删除重复项

Javascript 从随机选择的阵列中删除重复项,javascript,jquery,Javascript,Jquery,我有下面的代码试图从随机选择的数组项中删除重复项,但它不起作用 items[]是包含其的数组,我已使用sript删除重复项 如何更改它以删除重复项 错在哪里 window.onload=rnumber(); 函数rnumber(){ 常数 项目=[ {label:'1',url:'1.jpg'}, {label:'2',url:'2.jpg'}, {label:'3',url:'3.jpg'}, {label:'4',url:'4.jpg'}, {label:'5',url:'5.jpg'},

我有下面的代码试图从随机选择的数组项中删除重复项,但它不起作用

items[]是包含其的数组,我已使用sript删除重复项

如何更改它以删除重复项

错在哪里

window.onload=rnumber();
函数rnumber(){
常数
项目=[
{label:'1',url:'1.jpg'},
{label:'2',url:'2.jpg'},
{label:'3',url:'3.jpg'},
{label:'4',url:'4.jpg'},
{label:'5',url:'5.jpg'},
{label:'6',url:'6.jpg'},
{label:'7',url:'7.jpg'},
{label:'8',url:'8.jpg'},
{label:'9',url:'9.jpg'},
{label:'10',url:'10.jpg'}
];
var lastnumber=0;
对于(让索引=0;索引<9;索引++)
{
randomIndex=Math.floor(Math.random()*items.length);
if(lastnumber!=随机索引)
{
项目=项目[随机索引];
lastnumber=随机指数;
console.log(随机索引);
}
其他的
{
rnumber()
}
}

}
您的代码中有一些语法错误。注意在语句末尾使用分号,而不是逗号

如果您正在使用ES6,您可以编写如下内容:

let distinct = [...new Set(items.map(item => item.label))]

使用以下简单函数使用jquery从数组中删除重复项

var yourray=[
{label:'1',url:'1.jpg'},
{label:'1',url:'2.jpg'},
{label:'3',url:'3.jpg'},
{label:'4',url:'4.jpg'},
{label:'1',url:'5.jpg'},
{label:'6',url:'6.jpg'},
{label:'1',url:'7.jpg'},
{label:'8',url:'8.jpg'},
{label:'9',url:'9.jpg'},
{label:'10',url:'10.jpg'}
];
var SortedArray=YourArray.filter(
函数(a){if(!this[a.label]){this[a.label]=1;返回a;}},
{}
);
警报(JSON.stringify(SortedArray))

您可以使用reduce来消除重复项

const distinctShuffle=array=>
阵列?array.reduce((arr,item)=>{
如果(!(arr中的项目)){
阵列拼接(数学地板(数学随机()*(阵列长度+1)),0,项目);
}
返回arr;
},[]):数组;
函数rnumber(){
常量项=[
{label:'1',url:'1.jpg'},
{label:'2',url:'2.jpg'},
{label:'3',url:'3.jpg'},
{label:'4',url:'4.jpg'},
{label:'5',url:'5.jpg'},
{label:'6',url:'6.jpg'},
{label:'7',url:'7.jpg'},
{label:'8',url:'8.jpg'},
{label:'9',url:'9.jpg'},
{label:'10',url:'10.jpg'}
];
返回distinctShuffle(项目);
}

console.log(rnumber())删除数组后面的逗号并在那里放分号。它抛出错误。可能的重复将导致仅键列表,而不是对象列表。是否有一种方法可以将其从for loopMeans中使用的随机选择中删除?您想从表[array]中选择一些值,然后从中删除重复记录吗?是的,请稍候,我正在编辑代码,请检查并回答这是为了什么:此[a.label]=1请立即检查,我想要一个没有重复项的9号数组,但无法实现洗牌。在这个选择中有没有实现洗牌的方法?您可以更改函数,将项目插入数组中的随机点,而不是在末尾,或者编写不同的洗牌函数