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

Насколько хорошо поддерживается оператор `for of` JavaScript?

var nameArray = [

{ name: 'john', surname: 'smith'  },
{ name: 'paul', surname: 'jones' },
{ name: 'timi', surname: 'abel' },

];  

for (str of nameArray) {    
   console.log( str.name );

}

Я хочу знать, как поддерживается for( item of array ) с точки зрения поддержки браузера, поддержки мобильного JavaScript - я понимаю, что вы не можете сделать greater than >, и это чистая итерация?

Я только что открыл это, так хорошо, как я надеюсь?

4b9b3361

Ответ 1

Классический способ сделать это выглядит следующим образом:

  for(var i = 0; i < nameArray.length; i++){
    var str = nameArray[i];
  }

Это даст вам точную функциональность цикла "foreach", который, как я подозреваю, является тем, что вы действительно здесь. Это также дает вам дополнительную выгоду от работы в Internet Explorer.

Существует также обширное знание точной петли, описанной в

Ответ 2

MDN:

Пока для... в итерациях над именами свойств, для... итераций над значениями свойств.

Выше приведен пример цикла for...of. Ниже приведен его текущий статус.

Это экспериментальная технология, часть Гармонии (ECMAScript 6) предложение. Поскольку эта спецификация технологии не стабилизировалась, проверьте таблицу compatibility для использования в различных браузерах. Также обратите внимание что синтаксис и поведение экспериментальной технологии подчиняются для изменения в будущей версии браузеров по мере изменения спецификации.

Ответ 3

Это цикл ES6 for..of. Согласно статье MDN, которую я только что связал, она поддерживается несколькими браузерами (см. Там для точных версий), но не IE. В настоящее время несколько мобильных браузеров также поддерживают его.

Ответ 5

Это не так.

Даже если бы это было так, было бы нецелесообразно использовать его в массиве.

Для массивов вы всегда должны использовать традиционный цикл for.

Вы можете, однако, немного приправить его:

for( var i=0, l=nameArray.length, str=nameArray[0];
     i<l;
     i++,str=nameArray[i]) {
  console.log(str.name);
}