Между чем различие для.. в и для каждого.. в в JavaScript?

Мы можем сказать, что даже если одна проверка на равенство не пройдена, массив не является палиндромом.
Поэтому вам нужно разрывать цикл только тогда и там.

char a1[] = {'R', 'A', 'D', 'A', 'K'};
boolean response = true;
for (int i = 0; i < a1.length / 2; i++)
{
  if (a1[i] != a1[a1.length - 1 - i])
  {
    response = false;
    break;
  }
}
System.out.println(response);
6
задан Pooja Kedar 7 March 2017 в 05:32
поделиться

4 ответа

"для каждого... в" выполняет итерации указанной переменной по всем значениям свойств указанного объекта.

Пример:

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
  sum += item;
}
print(sum); // prints "26", which is 5+13+8

Источник

"для... в" выполняет итерации указанной переменной по всем свойствам объекта, в произвольном порядке.

Пример:

function show_props(obj, objName) {
   var result = "";
   for (var i in obj) {
      result += objName + "." + i + " = " + obj[i] + "\n";
   }
   return result;
}

Источник


Примечание 03.2013, for each... in циклы удерживаются от использования. 'Новый' синтаксис, рекомендуемый MDN, for... of.

12
ответ дан 8 December 2019 в 05:23
поделиться

Эта демонстрация должна, надо надеяться, проиллюстрировать различие.

var myObj = {
    a : 'A',
    b : 'B',
    c : 'C'
};
for each (x in myObj) {
    alert(x);        // "A", "B", "C"
}
for (x in myObj) {
    alert(x);        // "a", "b", "c"
    alert(myObj[x]); // "A", "B", "C"
}
7
ответ дан 8 December 2019 в 05:23
поделиться

Прочитайте превосходную документацию MDC.

Первое для нормального цикличного выполнения по наборам и произвольно по свойствам объекта.

Для... в цикле не выполняет итерации по встроенным свойствам. Они включают все встроенные методы объектов, такие как indexOf метод Строки или toString метод Объекта. Однако цикл выполнит итерации по всем пользовательским свойствам (включая любого, которые перезаписывают встроенные свойства).

Для... в цикле выполняет итерации по свойствам объекта в произвольном порядке. Если свойство изменят в одном повторении и затем посетят в более позднее время, то значение, выставленное циклом, будет своим значением в то более позднее время. Свойство, которое удалено, прежде чем его посетили, затем не посетят позже. Свойства, добавленные к объекту, по которому происходит повторение, можно или посетить или опустить от повторения. В целом лучше не добавить, изменить, или удалить свойства из объекта во время повторения, кроме свойства, в настоящее время будучи посещенным; нет никакой гарантии, посетят ли добавленное свойство, посетят ли измененное свойство прежде или после того, как оно изменяется, или посетят ли удаленное свойство, прежде чем оно будет удалено.

Последний позволяет Вам циклично выполняться по свойствам объекта.

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

2
ответ дан 8 December 2019 в 05:23
поделиться

В дополнение к другим ответам имейте в виду это for each...in не часть стандарта ECMA и также не включена в предстоящий выпуск 3.1. Это было представлено в JavaScript 1.6, который является расширением ECMAScript3 Mozilla Foundation.

Согласно связанной странице Wikipedia, это только реализовано в Firefox 1.5 + и Safari 3.x (+?).

2
ответ дан 8 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

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