Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: foreach для javascript
 
 автор: CrazyAngel   (28.06.2007 в 13:54)   письмо автору
 
 

или как пробежаться по асоциативному массиву?

   
 
 автор: bronenos   (28.06.2007 в 14:37)   письмо автору
 
   для: CrazyAngel   (28.06.2007 в 13:54)
 

for (i in ar) alert (i + ' = ' + ar[i]);

   
 
 автор: CrazyAngel   (28.06.2007 в 15:52)   письмо автору
 
   для: bronenos   (28.06.2007 в 14:37)
 

помимо самих элементов, выводит все методы, что мне не нужно :(

   
 
 автор: CNT   (28.06.2007 в 16:45)   письмо автору
 
   для: CrazyAngel   (28.06.2007 в 15:52)
 

Объясните конкретнее, плз, что за все методы у вас выводятся?

   
 
 автор: bronenos   (28.06.2007 в 17:05)   письмо автору
 
   для: CNT   (28.06.2007 в 16:45)
 

var data = {
  'one' : 'first',
  'two' : 'second',
  'three' : 'third'
};

var str = '';
for (d in data) str += 'data[' + d + '] = "' + data[d] + '"\n';
alert (str);

   
 
 автор: CNT   (28.06.2007 в 17:44)   письмо автору
 
   для: bronenos   (28.06.2007 в 17:05)
 

Спасибо, bronenos, но как работает оператор FOR...IN - мне известно.

Меня интересует другое - что за методы выводятся у топикстартера, когда он просматривает ассоциативный массив?

Вот вы определили массив, ввели в него три ключа и три значения, просмотрели его оператором FOR...IN и получили в итоге строку, в которой перечислены ключи и значения всех трех элементов массива. Все корректно и понятно.

А у топикстартера при просмотре - какие-то "все методы" выводятся, что его, разумеется, не устраивает. Вот и хочется узнать - что там за закавыка такая?


PS. Предполагаю, что топикстартер не внял моему совету и с упорством, достойным иного применения, именует объекты (в данном случае - массив) именами, которые уже используются браузером, потому и получает при переборе элементов этого "массива" атрибуты его (кои он ошибочно именует методами)... но хотелось бы уточнить.

Дабы потом ссылаться на этот топик - как на пример, "ПОЧЕМУ так делать НИЗЗЯ!" :-))

   
 
 автор: bronenos   (28.06.2007 в 18:25)   письмо автору
 
   для: CNT   (28.06.2007 в 17:44)
 

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

   
 
 автор: CrazyAngel   (29.06.2007 в 07:33)   письмо автору
 
   для: bronenos   (28.06.2007 в 17:05)
 

хм... этож объект ... хотя разница небольшая


var str;
var arInput = new Array();
arInput['login']        = new Array();
arInput['login'][1]        = 1; 
arInput['login'][2]        = 2;  
arInput['login'][3]        = 3;  
arInput['login'][4]        = 4;  
arInput['login'][5]        = 5;
for (temp in arInput) 
    str += 'temp + ' = "' + arInput[temp] + '"<br>'; 

document.write(str);


выводит


undefinedlogin= ",1,2,3,4,5"
each= "function (iterator) { var index = 0; try { this._each(function (value) {iterator(value, index++);}); } catch (e) { if (e != $break) { throw e; } } return this; }"
eachSlice= "function (number, iterator) { var index = - number, slices = [], array = this.toArray(); while ((index += number) < array.length) { slices.push(array.slice(index, index + number)); } return slices.map(iterator); }"
all= "function (iterator) { var result = true; this.each(function (value, index) {result = result && !!(iterator || Prototype.K)(value, index);if (!result) {throw $break;}}); return result; }"
any= "function (iterator) { var result = false; this.each(function (value, index) {if (result = !!(iterator || Prototype.K)(value, index)) {throw $break;}}); return result; }"
collect= "function (iterator) { var results = []; this.each(function (value, index) {results.push((iterator || Prototype.K)(value, index));}); return results; }"
detect= "function (iterator) { var result; this.each(function (value, index) {if (iterator(value, index)) {result = value;throw $break;}}); return result; }"
findAll= "function (iterator) { var results = []; this.each(function (value, index) {if (iterator(value, index)) {results.push(value);}}); return results; }"
grep= "function (pattern, iterator) { var results = []; this.each(function (value, index) {var stringValue = value.toString();if (stringValue.match(pattern)) {results.push((iterator || Prototype.K)(value, index));}}); return results; }"
include= "function (object) { var found = false; this.each(function (value) {if (value == object) {found = true;throw $break;}}); return found; }"
inGroupsOf= "function (number, fillWith) { fillWith = fillWith === undefined ? null : fillWith; return this.eachSlice(number, function (slice) {while (slice.length < number) {slice.push(fillWith);}return slice;}); }"
inject= "function (memo, iterator) { this.each(function (value, index) {memo = iterator(memo, value, index);}); return memo; }"
invoke= "function (method) { var args = $A(arguments).slice(1); return this.map(function (value) {return value[method].apply(value, args);}); }"
max= "function (iterator) { var result; this.each(function (value, index) {value = (iterator || Prototype.K)(value, index);if (result == undefined || value >= result) {result = value;}}); return result; }"
min= "function (iterator) { var result; this.each(function (value, index) {value = (iterator || Prototype.K)(value, index);if (result == undefined || value < result) {result = value;}}); return result; }"
partition= "function (iterator) { var trues = [], falses = []; this.each(function (value, index) {((iterator || Prototype.K)(value, index) ? trues : falses).push(value);}); return [trues, falses]; }"
pluck= "function (property) { var results = []; this.each(function (value, index) {results.push(value[property]);}); return results; }"
reject= "function (iterator) { var results = []; this.each(function (value, index) {if (!iterator(value, index)) {results.push(value);}}); return results; }"
sortBy= "function (iterator) { return this.map(function (value, index) {return {value:value, criteria:iterator(value, index)};}).sort(function (left, right) {var a = left.criteria, b = right.criteria;return a < b ? -1 : a > b ? 1 : 0;}).pluck("value"); }"
toArray= "function () { return [].concat(this); }"
zip= "function () { var iterator = Prototype.K, args = $A(arguments); if (typeof args.last() == "function") { iterator = args.pop(); } var collections = [this].concat(args).map($A); return this.map(function (value, index) {return iterator(collections.pluck(index));}); }"
size= "function () { return this.length; }"
inspect= "function () { return "[" + this.map(Object.inspect).join(", ") + "]"; }"
find= "function (iterator) { var result; this.each(function (value, index) {if (iterator(value, index)) {result = value;throw $break;}}); return result; }"
select= "function (iterator) { var results = []; this.each(function (value, index) {if (iterator(value, index)) {results.push(value);}}); return results; }"
member= "function (object) { var found = false; this.each(function (value) {if (value == object) {found = true;throw $break;}}); return found; }"
entries= "function () { return this.map(); }"
_reverse= "function reverse() { [native code] }"
_each= "function (iterator) { for (var i = 0, length = this.length; i < length; i++) { iterator(this[i]); } }"
clear= "function () { this.length = 0; return this; }"
first= "function () { return this[0]; }"
last= "function () { return this[this.length - 1]; }"
compact= "function () { return this.select(function (value) {return value != null;}); }"
flatten= "function () { return this.inject([], function (array, value) {return array.concat(value && value.constructor == Array ? value.flatten() : [value]);}); }"
without= "function () { var values = $A(arguments); return this.select(function (value) {return !values.include(value);}); }"
reduce= "function () { return this.length > 1 ? this : this[0]; }"
uniq= "function (sorted) { return this.inject([], function (array, value, index) {if (0 == index || (sorted ? array.last() != value : !array.include(value))) {array.push(value);}return array;}); }"
clone= "function () { return [].concat(this); }"
toJSON= "function () { var results = []; this.each(function (object) {var value = Object.toJSON(object);if (value !== undefined) {results.push(value);}}); return "[" + results.join(", ") + "]"; }"

   
 
 автор: bronenos   (29.06.2007 в 08:38)   письмо автору
 
   для: CrazyAngel   (29.06.2007 в 07:33)
 

1. надо тогда обходить второй уровень, поскольку массив двухмерный
2. как мне кажется, массивы не ассоциативны.. ассоциативны объекты

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования