Javascript 检查数组值是否都不同

Javascript 检查数组值是否都不同,javascript,Javascript,我有一个代码,它生成6个不同的数字(1-6),并显示所有不同的卷的百分比。百分比相加和显示不正确 var值=[Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1]; var=0; var=0; 如果(值[0]!=值[1]!=值[2]!=值[3]!=值

我有一个代码,它生成6个不同的数字(1-6),并显示所有不同的卷的百分比。百分比相加和显示不正确

var值=[Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1];
var=0;
var=0;
如果(值[0]!=值[1]!=值[2]!=值[3]!=值[4]!=值[5]){
不同的+=1;}
否则{
相同+=1;
}
console.log((不同/(相同+不同))*100+卷完全不同”);
var值=[Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1];
console.log(值);
var nums=新的集合(值);
var uniqueVals=nums.size;
console.log(“%age of unique value:”+uniqueVals*100/values.length)
var值=[Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1,Math.floor(Math.random()*6)+1];
console.log(值);
var nums=新的集合(值);
var uniqueVals=nums.size;

console.log(“%age of unique value:”+uniqueVals*100/values.length)对代码稍加修改以提供更好的结构。我还添加了一个阵列的控制台日志,以便您可以查看推送到阵列中的数字。基本前提是生成一个随机数,如果该随机数在数组中不存在,则增加不同的计数。然后,它只是将不同的计数除以数组的长度,得到改变的卷的百分比

var值=[];
var=0;
var=0;

对于(i=0;i对代码进行了轻微修改,以提供更好的结构。我还添加了一个数组的控制台日志,以便您可以看到推入其中的数字。基本前提是生成一个随机数,如果数组中不存在该随机数,则增加不同的计数。然后,这只是将不同的c除以的情况按数组的长度进行计数,以获得更改卷的百分比

var值=[];
var=0;
var=0;

对于(i=0;i我将把所有数组的值作为键放入对象中。由于对象不能有同名的键,重复的键将被丢弃。然后通过比较数组的长度和对象中的键数,我们可以找到数组中唯一值的百分比

var values = [ Math.floor(Math.random()*6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1 ];
console.log(values);
var obj = {};
values.forEach(function(val) {
    obj[val] = true;
});
var difference = Math.round((Object.keys(obj).length/values.length) * 100) 
console.log(difference + ' % of rolls are completely different')

我将把所有数组的值作为键放入对象中。由于对象不能有同名的键,重复的键将被丢弃。然后,我们可以通过比较数组的长度和对象中的键数来找到数组中唯一值的百分比

var values = [ Math.floor(Math.random()*6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1, Math.floor(Math.random() * 6) + 1 ];
console.log(values);
var obj = {};
values.forEach(function(val) {
    obj[val] = true;
});
var difference = Math.round((Object.keys(obj).length/values.length) * 100) 
console.log(difference + ' % of rolls are completely different')

你能在没有间隔的情况下发布代码吗?你的if语句是错误的。这并不意味着你想要它做什么。你的值数组中有一个尾随逗号。删除它确实会使函数运行,但它似乎不是一个构造良好的函数,应该重写。你可能应该阅读控制台,看看你的
if
是错误的
values[4]!=values[5]){
在if条件下使用而不是
values[4]!=(values[5]){
此项。最后一个
值[5]
是否声明错误?您是否可以在没有间隔的情况下发布代码?您的if语句是错误的。这并不意味着您想要它做什么。您的值数组中有一个尾随逗号。删除该逗号确实会使函数运行,但它似乎不是一个构造良好的函数,应该重写。您可能应该阅读控制台,看看您是否需要r
if
错误
值[4]!=values[5]){
在if条件中使用而不是
值[4]!=(values[5]){
此项。最后一个
值[5]
错误声明