Maison > Questions et réponses > le corps du texte
Il existe un tableau, par exemple var numArr = ["A", "C", "B", "A", "C", "D", "A", "C"]
, comment filtrer les mêmes éléments et le nombre des mêmes éléments
为情所困2017-06-28 09:28:34
["A", "C", "B", "A", "C", "D", "A", "C","B"].reduce((r,v)=>{
r[0].has(v)?r[1][v]?r[1][v]++:r[1][v]=2:r[0].add(v);
return r;
},[new Set,{}])[1]
// {A: 3, C: 3, B: 2}
Est-ce l'effet ? Sélectionner les éléments répétés (le nombre d'occurrences est supérieur ou égal à 2) et compter le nombre d'occurrences de chaque élément répété ?
巴扎黑2017-06-28 09:28:34
function checkArray(para, arr) {
let processArr = arr.filter(function(value) {
return value == para;
});
return processArr.length; // 这里返回数组长度或者相应处理
}
console.log(checkArray(1, numArr));
女神的闺蜜爱上我2017-06-28 09:28:34
Vous pouvez utiliser Map
["1", "2", 2, 0, -0, NaN, NaN, [], [], {}, {}, undefined, , , null].reduce((m, k) => {
return m.set(k, (m.get(k) || 0) + 1);
}, new Map());
Suivez les règles suivantes :
NaN = NaN
+0 = -0
"1" != 1
{} != {}
[] != []
indéfini != null
Les éléments vides ne sont pas comptés
滿天的星座2017-06-28 09:28:34
var obj={},arr=["A", "C", "B", "A", "C", "D", "A", "C","B"]
//for
for(var i=0,len=arr.length;i<len;i++){
if(obj[arr[i]]){
obj[arr[i]]++
}
else{
obj[arr[i]]=1
}
}
//forEach
arr.forEach(function(item,i){obj[arr[i]]?obj[arr[i]]++:obj[arr[i]]=1})