所以我正在制作一款游戏,根据两个人的名字中的字母和爱字来计算爱情百分比。
在下面的代码中,我计算一个字母出现在值数组中的次数 然后我想将这个值推入每个唯一字母的nums数组中。 但是我不确定每次字母出现在值数组中时我怎么能不重复它。 此外,我无法对数组进行排序,否则游戏将无法正常计算。
所以例如下面的值数组应该只将一次3推入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{
}
}
}
}
答案 0 :(得分: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;
}
答案 1 :(得分:1)
因为不清楚到底需要什么。这应该回答我认为你可能要问的两种可能性。
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));
on jsfiddle