JavaScript tableau dynamique de chaînes

Existe-t-il un moyen de créer un tableau dynamique de chaînes sur Javascript? Ce que je veux dire, c'est que sur une page, l'utilisateur peut entrer un numéro ou trente numéros, puis il appuie sur le bouton OK et la page suivante montre le tableau dans le même ordre qu'il a été entré, un élément à la fois.

Le Code est apprécié.

31
demandé sur Brian Webster 2009-08-31 18:03:17

8 réponses

Ce que je veux dire, c'est que sur une page, l'utilisateur peut entrer un numéro ou trente numéros, puis il appuie sur le bouton OK et la page suivante montre le tableau dans le même ordre qu'il a été entré, un élément à la fois.

Ok, donc vous avez besoin d'une entrée utilisateur en premier? Il ya un couple de méthodes de comment le faire.

  1. la première est la fonction prompt() qui affiche un popup demandant à l'utilisateur une entrée.
    • Avantages: facile. Points négatifs: moche, impossible de revenir à modifier facilement.
  2. la seconde est d'utiliser des champs html <input type="text">.
    • Avantages: peut être stylé, l'utilisateur peut facilement examiner et modifier. Inconvénients: un peu plus de codage nécessaire.

Pour la méthode prompt, la collecte de vos chaînes est un doddle:

var input = []; // initialise an empty array
var temp = '';
do {
    temp = prompt("Enter a number. Press cancel or leave empty to finish.");
    if (temp === "" || temp === null) {
        break;
    } else {
        input.push(temp);  // the array will dynamically grow
    }
} while (1);

(oui, ce n'est pas la plus jolie boucle, mais il est tard et je suis fatigué....)

L'autre méthode nécessite un peu plus d'effort.

  1. mettez un seul champ de saisie sur le page.
  2. ajoutez un gestionnaire onfocus.
    1. Vérifiez s'il y a un autre élément d'ENTRÉE après celui-ci, et s'il y en a un, Vérifiez s'il est vide.
      • S'il y en a, ne faites rien.
      • sinon, créez une nouvelle entrée, placez-la après celle-ci et appliquez le même gestionnaire à la nouvelle entrée.
  3. lorsque L'utilisateur clique sur OK, parcourez tous les <input> s de la page et stockez - les dans un tableau.

Par exemple:

// if you put your dynamic text fields in a container it'll be easier to get them
var inputs = document.getElementById('inputArea').getElementsByTagName('input');
var input = [];
for (var i = 0, l = inputs.length; i < l; ++i) {
    if (inputs[i].value.length) {
        input.push(inputs[i].value);
    }
}

Après cela, quelle que soit votre méthode de collecte de l'entrée, vous pouvez imprimer les numéros à l'écran de plusieurs façons. Un moyen simple serait comme ceci:

var div = document.createElement('div');
for (var i = 0, l = input.length; i < l; ++i) {
    div.innerHTML += input[i] + "<br />";
}
document.body.appendChild(div);

J'ai mis cela ensemble pour que vous puissiez le voir fonctionner à jsbin
Méthode rapide: http://jsbin.com/amefu
Méthode des entrées: http://jsbin.com/iyoge

54
répondu nickf 2009-08-31 15:00:27
var junk=new Array();
junk.push('This is a string.');

Et cetera.

15
répondu Jarett Millard 2009-08-31 14:06:32

Pour autant que je sache, Javascript a des tableaux dynamiques. Vous pouvez ajouter,supprimer et modifier les éléments à la volée.

var myArray = [1,2,3,4,5,6,7,8,9,10];
myArray.push(11);
document.writeln(myArray);  // Gives 1,2,3,4,5,6,7,8,9,10,11


var myArray = [1,2,3,4,5,6,7,8,9,10];
var popped = myArray.pop();
document.writeln(myArray);  // Gives 1,2,3,4,5,6,7,8,9

Vous pouvez même ajouter des éléments comme

var myArray = new Array()
myArray[0] = 10
myArray[1] = 20
myArray[2] = 30

, Vous pouvez même modifier les valeurs

myArray[2] = 40

Ordre D'Impression

Si vous voulez dans le même ordre, cela suffirait. Javascript imprime les valeurs dans l'ordre des valeurs clés. Si vous avez inséré des valeurs dans le tableau en augmentant de manière monotone les valeurs clés, elles seront imprimées de la même manière sauf si vous voulez changer l'ordre.

Soumission De Page

Si vous utilisez JavaScript, vous n'avez même pas besoin de soumettre les valeurs à la page différente. Vous pouvez même afficher les données sur la même page en manipulant le DOM.

6
répondu Manish Sinha 2009-08-31 14:18:50

, Vous pouvez aller avec insertion de données push, cela va être fait dans l'ordre

var arr = Array();
function arrAdd(value){
    arr.push(value);
}
5
répondu andres descalzo 2009-08-31 14:08:43

Voici un exemple. Vous entrez un nombre (ou autre) dans la zone de texte et appuyez sur "ajouter" pour le mettre dans le tableau. Ensuite, vous appuyez sur "show" pour afficher les éléments du tableau en tant qu'éléments.

<script type="text/javascript">

var arr = [];

function add() {
   var inp = document.getElementById('num');
   arr.push(inp.value);
   inp.value = '';
}

function show() {
   var html = '';
   for (var i=0; i<arr.length; i++) {
      html += '<div>' + arr[i] + '</div>';
   }
   var con = document.getElementById('container');
   con.innerHTML = html;
}

</script>

<input type="text" id="num" />
<input type="button" onclick="add();" value="add" />
<br />
<input type="button" onclick="show();" value="show" />
<div id="container"></div>
5
répondu Guffa 2009-08-31 14:18:02

Le code suivant crée un objet tableau appelé myCars:

var myCars=new Array();

Il y a deux façons d'ajouter des valeurs à un tableau (vous pouvez ajouter autant de valeurs que vous avez besoin pour définir autant de variables dont vous avez besoin).

1:

var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";

Vous pouvez également passer un argument entier pour contrôler la taille du tableau:

var myCars=new Array(3);
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";

2:

var myCars=new Array("Saab","Volvo","BMW");

Note: Si vous spécifiez des nombres ou des valeurs true/false dans le tableau, le type de variables sera numérique OU booléen à la place de la chaîne.

Accéder à un tableau

Vous pouvez faire référence à un élément particulier dans un tableau en vous référant au nom du tableau et au numéro d'index. Le numéro d'index commence à 0.

La ligne de code suivante:

document.write(myCars[0]);

Donnera la sortie suivante:

Saab

Modifier des Valeurs dans un Tableau

Pour modifier une valeur dans un tableau existant, ajoutez simplement une nouvelle valeur au tableau avec un numéro d'index spécifié:

myCars[0]="Opel";

Maintenant, le ligne de code suivante:

document.write(myCars[0]);

Donnera la sortie suivante:

Opel
4
répondu Chris 2009-08-31 14:11:39

Veuillez vérifier http://jsfiddle.net/GEBrW / pour test en direct.

Vous pouvez utiliser une méthode similaire pour la création de tableaux dynamiques.

var i = 0;
var a = new Array();

a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;

Le résultat:

a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
a[5] = 6
a[6] = 7
a[7] = 8
2
répondu D.A.Holyfield 2013-02-12 23:49:58

Initialisez simplement un tableau et poussez l'élément sur le tableau. Il va automatiquement mettre à l'échelle le tableau.

var a = [ ];

a.push('Some string'); console.log(a); // ['Some string'] 
a.push('another string'); console.log(a); // ['Some string', 'another string'] 
a.push('Some string'); console.log(a); // ['Some string', 'another string', 'Some string']
0
répondu Vishnu Mishra 2016-10-03 19:28:34