var ar = ['a','a','a','b','e','e']
var charMap ={}
for(let char of ar){
charMap[char] = charMap[char] +1 || 1
}
const result = [];
for(let ch in charMap){
if(charMap[ch] %2 !== 0 ){
result.push(Object.keys(ch))
}
}
console.log(result);
Run Code Online (Sandbox Code Playgroud)
结果应该是['a','a','a','b'],但我得到别的东西.请帮帮我.
只需filter通过传递callback提供的函数作为参数来使用方法.
var ar = ['a','a','a','b','e','e']
ar = ar.filter(function(item){
return ar.filter(elem => elem == item).length %2 == 1;
});
console.log(ar);Run Code Online (Sandbox Code Playgroud)
另一种方法是使用filter的方法combination有reduce.
var ar = ['a','a','a','b','e','e']
ar = ar.filter(function(item){
return ar.reduce((pre, current) => (current == item) ? ++pre : pre, 0) % 2 == 1;
});
console.log(ar);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |