3

所以我正在制作一个游戏,它根据两个人名字中的字母和爱这个词来计算爱情百分比。

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

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

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{

            }
        }   
    }
}
4

2 回答 2

2

所以不清楚到底需要什么。这应该回答我认为您可能会问的两种可能性。

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));

jsfiddle上

于 2013-04-20T15:53:36.163 回答
1

我不确定您是否需要获取键值对。您可以尝试以下给出的方法来获取字母计数对的对象。

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;
}
于 2013-04-20T15:47:44.440 回答