Подтвердить что ты не робот

Динамический массив строк Javascript

Есть ли способ создать динамический массив строк на Javascript? Я имею в виду, что на странице пользователь может ввести одно число или тридцать номеров, затем он нажимает кнопку "ОК", а на следующей странице отображается массив в том же порядке, в котором он был введен, по одному элементу за раз.

Оценивается код.

4b9b3361

Ответ 1

Я имею в виду, что на странице пользователь может ввести одно число или тридцать номеров, затем он нажимает кнопку "ОК", а на следующей странице отображается массив в том же порядке, в котором он был введен, по одному элементу за раз.

Итак, вам нужно сначала ввести пользовательский ввод? Есть несколько способов, как это сделать.

  • Сначала это функция prompt(), которая отображает всплывающее окно с запросом пользователя на какой-либо ввод.
    • Плюсы: легко. Минусы: уродливые, не могут вернуться к редактированию легко.
  • Второе использует поля html <input type="text">.
    • Плюсы: можно стилизовать, пользователь может легко просмотреть и отредактировать. Минусы: требуется немного больше кодирования.

Для метода prompt сбор ваших строк - это 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);

(Да, это не самая красивая петля, но это поздно, и я устал....)

Другой метод требует немного больших усилий.

  • Поместите на страницу одно поле ввода.
  • Добавьте к нему обработчик onfocus.
    • Проверьте, есть ли еще один элемент ввода после этого, и если есть, проверьте, не пуст ли он.
      • Если есть, ничего не делайте.
      • В противном случае создайте новый вход, поместите его после этого и примените тот же обработчик к новому вводу.
  • Когда пользователь нажимает OK, прокрутите все <input> на странице и сохраните их в массиве.

например:

// 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);
    }
}

После этого, независимо от способа сбора ввода, вы можете распечатать номера на экране несколькими способами. Простым способом было бы следующее:

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

Я собрал это вместе, чтобы вы могли видеть его работу в jsbin
Метод подсказки: http://jsbin.com/amefu
Метод ввода: http://jsbin.com/iyoge

Ответ 2

var junk=new Array();
junk.push('This is a string.');

Et cetera.

Ответ 3

Насколько я знаю, Javascript имеет динамические массивы. Вы можете добавлять, удалять и изменять элементы на лету.

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

Вы даже можете добавить такие элементы, как

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

вы даже можете изменить значения

myArray[2] = 40

Заказ печати

Если вы хотите в том же порядке, этого было бы достаточно. Javascript печатает значения в порядке значений ключей. Если вы вставили значения в массив с монотонно увеличивающимися значениями ключа, они будут напечатаны таким же образом, если вы не хотите изменить порядок.

Представление страницы

Если вы используете JavaScript, вам даже не нужно отправлять значения на другую страницу. Вы даже можете отображать данные на одной странице, манипулируя DOM.

Ответ 4

Вы можете пойти с вводом данных push, это будет сделано в порядке

var arr = Array();
function arrAdd(value){
    arr.push(value);
}

Ответ 5

Вот пример. Вы вводите число (или что-то еще) в текстовое поле и нажмите "добавить", чтобы поместить его в массив. Затем вы нажимаете "показать", чтобы отображать элементы массива как элементы.

<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>

Ответ 6

Следующий код создает объект Array с именем myCars:

var myCars=new Array();

Существует два способа добавления значений в массив (вы можете добавить столько значений, сколько вам нужно, чтобы определить столько требуемых переменных).

1

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

Вы также можете передать целочисленный аргумент для управления размером массива:

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

2:

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

Примечание. Если вы укажете числа или истинные/ложные значения внутри массива, тогда тип переменных будет содержать числовые или логические значения, а не строку.

Доступ к массиву

Вы можете обратиться к определенному элементу массива, указав имя массива и номер индекса. Номер индекса начинается с 0.

Следующая строка кода:

document.write(myCars[0]);

приведет к следующему выводу:

Saab

Изменить значения в массиве

Чтобы изменить значение в существующем массиве, просто добавьте новое значение в массив с указанным номером индекса:

myCars[0]="Opel";

Теперь, следующая строка кода:

document.write(myCars[0]);

приведет к следующему выводу:

Opel

Ответ 7

Пожалуйста, проверьте http://jsfiddle.net/GEBrW/ для тестирования в реальном времени.

Вы можете использовать аналогичный метод для создания динамических массивов.

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;

Результат:

a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
a[5] = 6
a[6] = 7
a[7] = 8

Ответ 8

Просто инициализируйте массив и нажмите элемент в массиве. Он будет автоматически масштабировать массив.

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']