-2
votes

Comptez la valeur en double du tableau dans une matrice d'objet en JavaScript

Actuellement, j'ai un tableau comme celui-là:

[{key: "a", count: 2}
 {key: "b", count: 1}
 {key: "c", count: 1}
 {key: "d", count: 1}
 {key: "a", count: 2}]


6 commentaires

Des efforts jusqu'à présent? S'il vous plaît poster le code que vous avez écrit jusqu'à présent


J'ai vu cette question au moins deux fois déjà déjà dans les deux derniers jours, à chaque fois avec les citations manquantes autour des éléments de la matrice d'origine. Je me demande pourquoi...


Cela ressemble à une question d'entrevue ...


@ASDFGERTE - Bon à savoir ... c'est suspect ...


@ThasharsharpieOneOneOne ou assignation scolaire


HM, même ceux de 2013 n'ont pas les citations, alors je pense que c'est juste quelque chose qui se passe ... Stackoverflow.com/questions/19395257/... - Les postes liés que j'ai trouvés dans mon histoire sont Maintenant toutes les questions supprimées.


5 Réponses :


0
votes

Il vous suffit d'appliquer la condition correctement, de vérifier cet extrait, d'abord, nous trouvons en tableau par son nom f.key === m code>. Si trouvé, augmentez-le à 1 ( uniquier [index] [index] .Count + = 1 code>) ajoutez à l'objet avec le comptage 1.

p>

const array = ['a', 'a', 'b', 'c', 'd', 'a', 'a'];

const uniqueArray = [];
array.forEach((m) => {
  const obj = { key: m, count: 1 };
  const index = uniqueArray.findIndex((f) => { return f.key === m; });
  index === -1 ? uniqueArray.push(obj) : uniqueArray[index].count += 1;
});


console.log(uniqueArray)


2 commentaires

@ CườngBờm Bienvenue!


@ Cườngbờm je vous ai recommandé de répondre à une question que vous connaissez.



1
votes

Réduisez la matrice sur une carte, puis utilisez array.from () code> pour convertir en un tableau d'objets:

p>

const array = ['a', 'a', 'b', 'c', 'd', 'a', 'a']

const count = Array.from(
  array.reduce((r, c) => r.set(c, (r.get(c) || 0) + 1), new Map()), 
  (([key, count]) => ({ key, count }))
)

console.log(count)


0 commentaires

0
votes
    uniqueCount = ["a","a","b","c","d","a","a"]
    count = {}
    uniqueCount.forEach(x => {
       if(count[x]) {
           count[x] += 1
       }
        else {
           count[x] = 1
        }
    })
    const result = Object.keys(count).map(x => { return {key:x, count:count[x]}})
    console.log(result)

0 commentaires

0
votes

Comptez d'abord le nombre de caractères d'occurrence dans Uniquecount code> Array. Ensuite, faites le gamme résultant de l'objet à l'aide de cartographique code> comme ci-dessous

p>

var uniqueCount = ['a','a','b','c','d','a','a'];
var duplicateCount = {};
uniqueCount.forEach(e => duplicateCount[e] = duplicateCount[e] ? duplicateCount[e] + 1 : 1);
var result = Object.keys(duplicateCount).map(e => {return {key:e, count:duplicateCount[e]}});
console.log(result);


0 commentaires

0
votes

Vous devez utiliser lodash pour fonctionner avec une transformation de données compliquée comme votre objectif: xxx

document Lodash: https://lodash.com/docs/4.17.15


1 commentaires

Merci de vous pour votre soutien