-2
votes

Comment trouver une première occurrence de nombre à deux chiffres

Donc, je pousse des éléments dans la matrimonie à l'aide de l'invite jusqu'à ce que jeûne 0. Après cela, j'essaie de trouver le premier chiffre à double chiffre. Par exemple, si le tableau est [2,3 55,0] code> mon programme doit renvoyer 55.

p>

function findFirstDouble() {
	var niz = []
	var a = 1;
	for (var i = 1; a != 0; i++) {
		var unos = parseInt(prompt("Enter number :"))
		niz.push(unos)
		a = unos
	}
	alert(niz);
	for (var i = 0; i < niz.length; i++) {
		if (niz[i] / 10 > 0 && niz[i] / 100 == 0) {
			console.log(niz[i]); 
			break;
		}
		else {
			alert("No double digit numbers!")
			break;
		}
	}
}
findFirstDouble();


5 commentaires

Convertissez en chaîne et essayez la longueur de la longueur == 2


Quel est le problème exactement? Est-ce que quelque chose se produit? Les erreurs? Résultats inattendus?


@eugensunic ou vérifiez si le numéro est > = 10 et <= 99 ?


@Pointy sûr ...


Regardez cette réponse . Cette question est essentiellement répondue ici. Exclure simplement la fonction FindIndex .


4 Réponses :


1
votes

voie facile sans mathématiques est juste de le convertir en une chaîne.

p>

const data = [2,111,3,55,0];

const res = data.find(n=>n<100&&n>9);

console.log(res ? "Exists " + res : "Doesn't exist");


1 commentaires

Ici, le problème est un sujet d'entrée au collège ou un problème de lycée, cette solution n'est pas commode, je suppose de son point de vue ... mais bon +1 je l'aime.



1
votes

Veuillez utiliser js code> fonction trouver code>. https://developer.mozilla.org/ EN-US / DOCS / Web / JavaScript / Référence / Global_Objects / Array / Recherche

Voici la solution P>

// I assume that you already have an array   
const niz = [2,3,55,0]
const firstDoubleDigit = niz.find(num => num < 100 && num >= 10)
console.log(firstDoubleDigit)


0 commentaires

1
votes

Voici la réponse que je pense que vous recherchez.

J'ai omis la partie de remplissage de la matrice.

Pourquoi feriez-vous un type de division si vous avez juste besoin de vérifier chaque chiffre et si le premier correspond à la critère, vous avez votre numéro de double chiffre, quittez donc la boucle avec pause < / forte> ou retour mot-clé. xxx

Vous pouvez également convertir en chaîne: si (niz [i] .tostring (). Longueur === 2) {// Votre numéro}


0 commentaires

0
votes

Vous utilisez si (NIZ [I] / 10> 0 && NIZ [i] / 100 == 0) { code> Pour déterminer si I est compris entre 10 et 99 à l'aide d'une division.

Mais si vous voulez faire cela, cette partie doit être plus grande qu'un Niz [i] / 10> 0 code> et cette partie NIZ [i] / 100 == 0 code> devrait être plus petit qu'un. p>

qui vous donnerait: p> xxx pré>

p>

function findFirstDouble(val) {
  for (var i = 0; i < val.length; i++) {
    if (val[i] >= 10 && val[i] < 100) {
      return val[i];
    }
  }
  return null;
}

const arrays = [
  [1, 2, 55, 13],
  [1, 2]
];

arrays.forEach(s => {
  var res = findFirstDouble(s);
  console.log(res !== null ? res : "No double digit numbers in: " + s);
});


0 commentaires