Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不进行排序的情况下删除Javascript数组中的重复项_Javascript_Arrays_Duplicates - Fatal编程技术网

如何在不进行排序的情况下删除Javascript数组中的重复项

如何在不进行排序的情况下删除Javascript数组中的重复项,javascript,arrays,duplicates,Javascript,Arrays,Duplicates,所以我在做一个游戏,根据两个人名字中的字母和“爱”这个词来计算爱的百分比 在下面的代码中,我正在计算一个字母在值数组中出现的次数 然后,我想将该值推送到nums数组中,用于每个唯一的字母。 但是,我不确定如何才能使它在每次字母出现在值数组中时都不重复。 此外,我不能排序数组,否则游戏将无法正确计算 因此,例如,下面的值数组应该只向nums数组中推一次3 for s var value =["s", "a", "m", "a", "n", "t", "h", "a", "w", "h", "i",

所以我在做一个游戏,根据两个人名字中的字母和“爱”这个词来计算爱的百分比

在下面的代码中,我正在计算一个字母在值数组中出现的次数 然后,我想将该值推送到nums数组中,用于每个唯一的字母。 但是,我不确定如何才能使它在每次字母出现在值数组中时都不重复。 此外,我不能排序数组,否则游戏将无法正确计算

因此,例如,下面的值数组应该只向nums数组中推一次3 for s

var value =["s", "a", "m", "a", "n", "t", "h", "a", "w", "h", "i", "t", "e", "l", "o", "v", "e", "s", "J", "a", "c", "k", "h", "a", "r", "r", "i", "s"]; 


function trueLoveGame(value){

    var nums=[];

    for(var i =0; i < value.length;i++){
        var count = 0;
        for(var a = 0; a < value.length;a++){
            if(value[i] === value[a]){  
                count++;
            }
            else{

            }
        }   
    }
}
var值=[“s”、“a”、“m”、“a”、“n”、“t”、“h”、“a”、“w”、“h”、“i”、“t”、“e”、“l”、“o”、“v”、“e”、“s”、“J”、“a”、“c”、“k”、“h”、“a”、“r”、“i”、“s”];
函数trueLoveGame(值){
var nums=[];
对于(变量i=0;i
我不确定是否需要获取键值对。您可以尝试下面给出的方法来获得字母计数对的对象

function trueLoveGame(value){


    var nums={};

    for(var i =0; i < value.length;i++){
       var letter = value[i];
       nums[letter] =   nums[letter] || 0;
       nums[letter]++;
    }

    return nums;
}
函数trueLoveGame(值){
var nums={};
对于(变量i=0;i
,因为不清楚到底需要什么。这应该能回答我想你可能会问的两种可能性

var userArray = ["s", "a", "m", "a", "n", "t", "h", "a", "w", "h", "i", "t", "e", "l", "o", "v", "e", "s", "J", "a", "c", "k", "h", "a", "r", "r", "i", "s"];

function unique(array) {
    var unique = [];

    array.forEach(function (value) {
        if (unique.indexOf(value) === -1) {
            unique.push(value);
        }
    });

    return unique;
}

function count(array) {
    var obj = {};

    array.forEach(function (value) {
        obj[value] = (obj[value] || 0) + 1;
    });

    return obj;
}


console.log(userArray);
console.log(unique(userArray));
console.log(count(userArray));

上,在按下字母之前,先查看字母是否已在。或者您应该使用字母作为数组键,例如
字母['s']=3
,这样您就不必担心唯一性-使用字母作为键将自动使每个字母唯一,因为您不能有重复的键。我不确定这意味着什么?您期望的输出是什么?一个物体或阵列?游戏的工作方式是它接受两个人名字的字母。例如:sara love martin,然后is计算字母出现的次数并将其添加到新数组中。该数组的第一个和最后一个值将被添加,你将继续向内添加这些数字,直到将它们移动到一个新数组中,并获取这些值,然后执行相同的操作,直到只有两个数字。这些数字是爱的百分比