Существует несколько способов циклического преобразования массива в JavaScript.
Общий цикл:
var i;
for (i = 0; i < substr.length; ++i) {
// Do something with `substr[i]`
}
ES5 forEach:
substr.forEach(function(item) {
// Do something with `item`
});
jQuery.each:
jQuery.each(substr, function(index, item) {
// Do something with `item` (or `this` is also `item` if you like)
});
Посмотрите этот для получения подробной информации или вы также можете проверить MDN для циклического перемещения массива в JavaScript & amp; используя jQuery check jQuery для каждого .
Если компилятор реализовал то, что вы хотели добросовестно, тогда он привязал регистр CPU для длины вашей программы. Это вряд ли практично.
Помните, что register
является только рекомендательным.
Основная причина заключается в том, что спецификатор регистра подразумевает, что переменная имеет автоматическую продолжительность хранения. Это, в основном, автоматическая переменная, для которой вы говорите компилятору, что было бы неплохо разместить ее в регистре CPU общего назначения.
статический определитель подразумевает статическую или длительность хранения потоков.
Очевидно, что эти два несовместимы, если они применяются к одной и той же переменной!
Это было бы похоже на то, чтобы у вас была переменная, которая умирает и выживает (в то же время), когда удаленная запись активации удалена.
Стандарт не позволяет использовать в объявлении более одного спецификатора класса хранения.
Из стандарта C99:
6.7.1 Спецификаторы класса хранения
1 спецификация-хранилище-хранилище:
typedef extern static auto register
2 В спецификациях декларации может быть указано не более одного спецификатора класса хранения в объявлении .
blockquote>