-6
votes

Comment découvrir l'élément de chaîne?

Je veux trouver l'élément de chaîne qui existe ou non dans la matrice. En d'autres termes, je peux expliquer ce que je veux chercher. Dans le code ci-dessous si je passe "Texte" sur une fonction, alors comment trouver l'index de chaque élément qui consistent "texte" dans la matrice. C'est la matrice et je souhaite imprimer l'index des éléments de texte qui existe dans les éléments d'éléments mais que la condition est que nous n'avons besoin que de passer du texte dans des arguments.

"steps": [
  {
    "stepname": "Step 1",
    "stepnum": 1,
    "elements": [
      "div-container-s1",
      "text-1",
      "text-2",
      "text-3",
      "image-1",
      "image-2",
      "button-1",
      "button-2",
      "image-3"
    ]
  },
  {
    "stepname": "Step 2",
    "stepnum": 2,
    "elements": [
      "div-container-s2",
      "text-4",
      "text-5",
      "text-6",
      "image-4",
      "image-5",
      "image-6",
      "form-1",
      "input-1",
      "button-3",
      "dropdown-1"
    ]
  },
  {
    "stepname": "Step 3",
    "stepnum": 3,
    "elements": [
      "div-container-s3",
      "text-7",
      "text-8",
      "text-9",
      "image-7",
      "text-10",
      "text-15",
      "text-16",
      "text-17",
      "text-18",
      "image-10",
      "image-11",
      "image-12",
      "image-13",
      "image-8",
      "image-9",
      "text-11",
      "text-12",
      "text-13",
      "text-14"
    ]
  }
],

function myFunction(elementType){
//code goes here
}

myFunction('text');

//output should be 0,1,2,3 because it contains "text" 


8 commentaires

// code va ici ? La question postée ne semble pas inclure Toute tentative pour résoudre le problème. Stackoverflow s'attend à ce que vous soyez Essayez de résoudre votre propre problème Premier , comme vos tentatives nous aident à mieux comprendre ce que vous voulez. Veuillez éditer la question pour montrer ce que vous avez essayé, de manière à illustrer un barrage routier spécifique que vous utilisez dans un exemple de reproductible minimal . Pour plus d'informations, s'il vous plaît voir Comment demander et prendre le Tour .


Veuillez préciser ce que vous avez essayé jusqu'à présent pour résoudre ce problème.


en fait, il y a un objet de 1600 lignes, donc je ne peux pas tout partager


développeur.mozilla.org/en-us/ Docs / Web / JavaScript / Référence / ... et une belle boucle. L'entrée de 1600 lignes est plutôt hors de propos ici, affichez simplement votre code de fonction, ce que vous avez essayé de résoudre le problème.


Dupliquer: Stackoverflow.com/Questtions/237104/...


On dirait déjà Stackoverflow.com/Questtions/6116474/...


Comment résoudre ce problème en utilisant la méthode d'indexof, mais mais mais nous n'avons besoin que de transmettre "texte" plutôt que "text-1" ou quelque chose ..


Dupliqué possible de Comment puis-je vérifier si Un tableau comprend un objet en JavaScript?


3 Réponses :


1
votes

Vous pouvez utiliser la fonction de réduction de la matrice et utiliser inclut code> pour vérifier si la chaîne contient le texte.Si il en est alors alors appuyez sur index code> n l'accumulateur

p>

var a = ["text-1", "text-2", "text-3", "text-4", "div-container-s1", "image-4"];

function myFunction(elementType) {
  return a.reduce((acc, curr, index) => {
    if (curr.includes(elementType)) {
      acc.push(index)
    }
    return acc;
  }, [])
}

console.log(myFunction('text'));


0 commentaires

0
votes

Essayez l'exemple ci-dessous

P>

var a=["text-1","text-2","text-3","text-4","div-container-s1", "image-4"];

function getTextIndex(arrayElement) {
  var char='';
  for(var i=0; i<arrayElement.length; i++) {
    if(arrayElement[i].search(/[^a-zA-Z]+/) == -1) { 
    if(char == '')
      char = i.toString();
    else
      char = char + ', ' + i;
    }
  }
  console.log(char)
}

getTextIndex(a[0]);


0 commentaires

0
votes

Vous pouvez utiliser mapper code> et filtre code> pour cela. Tout d'abord avec mappe code> retour index code> qui consiste en une chaîne requise. S'il n'a pas cette chaîne, renvoyez alors -1 code> comme valeur. Ensuite, filtrez simplement votre tableau pour supprimer toutes les entrées de -1 code>.

p>

var a = ["text-1","text-2","text-3","text-4","div-container-s1", "image-4"];

function myFunction(text) {
  return a.map((x, i) => x.includes('text') ? i : -1).filter(x => x != -1);
}

console.log(myFunction('text'));


0 commentaires