Check to see if a string has the same amount of 'x's and 'o's. The method must return a boolean and be case insensitive. The string can contain any char.
Examples input/output:
XO("ooxx") => true
XO("xooxx") => false
XO("ooxXm") => true
XO("zpzpzpp") => true // when no 'x' and 'o' is present should return true
XO("zzoo") => false
function XO(str) {
let arr = str.toLowerCase().split('');
let count = arr.reduce((obj, el) => {
if (el in obj)
obj[el] += 1;
else
obj[el] = 1;
return obj}, {});
return count.x === count.o;
}
와 .filter
로 걸러낸 다음, 길이를 구해서 바로 비교하는 방법도 있었다.
const XO = str => {
str = str.toLowerCase().split('');
return str.filter(x => x === 'x').length === str.filter(x => x === 'o').length;
}