Самый эффективный способ преобразовать HTMLCollection в Массив

Вот то, что я использовал в прошлых проектах:

var myDate = new Date();
var tzo = (myDate.getTimezoneOffset()/60)*(-1);
//get server date value here, the parseInvariant is from MS Ajax, you would need to do something similar on your own
myDate = new Date.parseInvariant('<%=DataCurrentDate%>', 'yyyyMMdd hh:mm:ss');
myDate.setHours(myDate.getHours() + tzo);
//here you would have to get a handle to your span / div to set.  again, I'm using MS Ajax's $get
var dateSpn = $get('dataDate');
dateSpn.innerHTML = myDate.localeFormat('F');
342
задан Tom 21 October 2008 в 07:04
поделиться

1 ответ

Для реализации кроссбраузерности я предлагаю вам посмотреть prototype.js $ A функцию

, скопированную из 1.6.1 :

function $A(iterable) {
  if (!iterable) return [];
  if ('toArray' in Object(iterable)) return iterable.toArray();
  var length = iterable.length || 0, results = new Array(length);
  while (length--) results[length] = iterable[length];
  return results;
}

Он не использует Array.prototype.slice , вероятно, потому, что он доступен не во всех браузерах. Боюсь, что производительность очень плохая, так как есть резервный цикл javascript по итерируемому .

6
ответ дан 23 November 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: