Как получить доступ к свойствам объекта javascript, если я не знаю имен?

.equals() сравнивает данные в классе (при условии, что функция реализована). == сравнивает местоположения указателя (расположение объекта в памяти).

== возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals() возвращает true, если два объекта содержат одни и те же данные equals() Versus == в Java

Это может вам помочь.

118
задан Adam Lassek 25 April 2017 в 22:23
поделиться

3 ответа

Можно циклично выполниться через ключи как это:

for (var key in data) {
  console.log(key);
}

Это регистрирует "Имя" и "Значение".

Если у Вас будет тип более сложного объекта (не только простой подобный хешу объект, как в исходном вопросе), то Вы захотите только к циклу через ключи, которые принадлежат самому объекту, в противоположность включает прототип объекта:

for (var key in data) {
  if (data.hasOwnProperty(key)) {
    console.log(key);
  }
}

Как Вы отметили, ключи, как гарантируют, не будут ни в каком конкретном порядке. Отметьте, как это отличается от следующего:

for each (var value in data) {
  console.log(value);
}

Эти циклы в качестве примера через значения, таким образом, это зарегистрировалось бы Property Name и 0. N.B.: for each синтаксис главным образом только поддерживается в Firefox, но не в других браузерах.

Если Ваши целевые браузеры поддерживают ES5, или Ваш сайт включает es5-shim.js (рекомендуемый), можно также использовать Object.keys:

var data = { Name: 'Property Name', Value: '0' };
console.log(Object.keys(data)); // => ["Name", "Value"]

и цикл с Array.prototype.forEach:

Object.keys(data).forEach(function (key) {
  console.log(data[key]);
});
// => Logs "Property Name", 0
139
ответ дан 24 November 2019 в 01:40
поделиться
for(var property in data) {
    alert(property);
}
10
ответ дан 24 November 2019 в 01:40
поделиться

Вы часто будете хотеть исследовать особые свойства экземпляра объекта, безо всего его совместно использовал опытные методы и свойства:

 Obj.prototype.toString= function(){
        var A= [];
        for(var p in this){
            if(this.hasOwnProperty(p)){
                A[A.length]= p+'='+this[p];
            }
        }

    return A.join(', ');
}
4
ответ дан 24 November 2019 в 01:40
поделиться
Другие вопросы по тегам:

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