Ответ 1
Чтобы получить доступ к свойствам объекта, не зная имена этих свойств, вы можете использовать цикл for ... in
:
for(key in data) {
if(data.hasOwnProperty(key)) {
var value = data[key];
//do something with value;
}
}
У меня есть этот объект:
var data = {"id": 1, "second": "abcd"};
Это значения из формы. Я передаю это функции для проверки.
Если указанные выше свойства существуют, мы можем получить их значения с помощью data["id"]
и data["second"]
, но иногда, исходя из других значений, свойства могут быть разными.
Как я могу получить значения из data
независимо от имен свойств?
Чтобы получить доступ к свойствам объекта, не зная имена этих свойств, вы можете использовать цикл for ... in
:
for(key in data) {
if(data.hasOwnProperty(key)) {
var value = data[key];
//do something with value;
}
}
Если вы хотите сделать это в одной строке, попробуйте:
Object.keys(a).map(function(key){return a[key]})
В ES2017 вы можете использовать Object.values()
:
Object.values(data)
Во время написания поддержка ограничена (FireFox и Chrome). Все основные браузеры, кроме IE, поддерживают это сейчас.
В ES2015 вы можете использовать это:
Object.keys(data).map(k => data[k])
Если вы $
определены, вы можете выполнять итерацию
var data={"id" : 1, "second" : "abcd"};
$.each(data, function() {
var key = Object.keys(this)[0];
var value = this[key];
//do something with value;
});
Вы можете получить доступ к нему следующим образом. Если вы знаете значения клавиш
data.id
или
data["id"]
Мне жаль, что ваш заключительный вопрос не так ясен, но вы ошибаетесь с первой строки. Переменные данные представляют собой Объект, а не Массив
Доступ к атрибутам объекта довольно прост:
alert(data.second);
Но если это не полностью ответит на ваш вопрос, пожалуйста, уточните его и отправьте обратно.
Спасибо!
Использование lodash _.values(object)
_.values({"id": 1, "second": "abcd"})
[ 1, 'abcd' ]
lodash
включает в себя целую кучу других функций для работы с массивами, объектами, коллекциями, строками и т.д., которые вы пожелаете были встроены в JavaScript (и на самом деле, похоже, медленно пробиваются на язык).
использовать
console.log(переменная)
и если вы используете консоль google chrome open с помощью Ctrl + Shift + j
Перейти к → Консоль