Lorsque je travaillais sur une fonction d'option de question, j'ai rencontré ce problème de fusion. Il existe des questions à choix unique et à choix multiple. Chaque question à choix multiple entraînera plusieurs réponses. Le résultat de la sélection est similaire à l'image ci-dessous :
Je dois fusionner les données de la même question à choix multiples en une seule, c'est-à-dire que les objets dans la partie de sélection de la boîte bleue dans l'image sont fusionnés en un seul, l'option devient "pincer, presser" et les autres identifiants sont ignoré. Existe-t-il un moyen simple d'y parvenir. Agenouillez-vous et merci !
Une idée de base est de parcourir d'abord les données, de sauvegarder les questions de la même question sous forme de tableau, puis de parcourir les tableaux traitant de la même question et de regrouper les réponses ensemble.
Exemple :
Données :
//Catégorie les mêmes questions
Traversez les questions du même type et placez toutes les questions suivantes dans la première.
et re-stockez-le dans le format original
Mise à jour
Après avoir lu la réponse au 2ème étage, en effet, le processus précédent peut être simplifié, mais comme l'a dit le 3ème étage, cela n'a rien à voir avec la carte ES6. J'ai utilisé
forEach
d'ES5. Au lieu d'utiliser ES5, utilisez simplement ES3. Il n'y a aucun problème si vous le remplacez par une boucle for normale. Utiliser la carte est assez compliqué.forEach
。不用ES5,只用ES3,换成普通for循环完全没有问题的。使用map反而负复杂了。由于不需要分类的题目数据,所以可以直接拼接答案,不用先归类了,实现如下:
这样出来的
Comme il n'est pas nécessaire de classer les données des questions, les réponses peuvent être assemblées directement sans les classer au préalable. La mise en œuvre est la suivante :data2
rrreee Le
Je dois encore être d'accord avec le point du troisième étage. Même s'il s'agit d'une question à choix multiples, les données originales ne doivent pas être organisées de la manière que vous avez indiquée. 🎜N'est-ce pas une meilleure façon de le gérer directement lors du comptage des réponses sélectionnées aux questions à choix multiples ? 🎜🎜data2
qui sort se présente sous la forme d'un objet. Si vous avez besoin d'un tableau, traitez-le simplement.Fournit une idée amusante qui peut être mise en œuvre, mais peut ne pas être applicable à des scénarios réels
.Définissez un objet vide, parcourez le tableau, puis l'attribut de l'objet vide est appelé titre et le correspondant ; value est le titre ; value En tant que tableau, insérez les options. Bien sûr, cela peut également impliquer le problème de la suppression des doublons dans chaque question. Le résultat final est probablement similaire à celui-ci
Si vous savez utiliser es6, je vous recommande Map
La méthode du 1er étage peut résoudre ce problème,
La carte du 2ème étage n'a pas besoin d'être es6
Le 3ème étage a refusé de répondre à cette question car il estimait que cette méthode de mise en œuvre ce n'était pas bien#🎜🎜 #