Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2014, 02:42
Новичок на форуме
Отправить личное сообщение для unrecovered Посмотреть профиль Найти все сообщения от unrecovered
 
Регистрация: 05.10.2014
Сообщений: 4

Обращение к элементу по имени из переменной
Приветствую. Не сумел нагуглить(вполне возможно - ниасилил сформулировать) ответ на этот вопрос.

Итак.
Есть у нас некий кастомный объект, созданный функцией:

function myclass(a,b,c,d)
{
  this.a = a;
  this.b = b;
  this.c = c;
  this.d = d;
} 

example = new myclass(1,2,3,4);


и есть у меня, например, массив, который имена его полей содержит:
const fieldnames = ["a","b","c","d"];


Как мне сделать перебор полей объекта в цикле, забирая названия полей из массива?

(обычная конструкция for..in не подходит по причине того, что порядок и количество свойств в будущем может поменяццо...)
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2014, 07:07
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

это что какая то задача не несущая в себе практического смысла?
Используй forEach\while
Ответить с цитированием
  #3 (permalink)  
Старый 18.12.2014, 11:28
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

function myclass(a,b,c,d)
{
  this.a = a;
  this.b = b;
  this.c = c;
  this.d = d;
}
 
example = new myclass(1,2,3,4);
const fieldnames = ["a","b","c","d"];

fieldnames.forEach(function(el){console.log(example[el])})

//  1
//  2
//  3
//  4

PS вообще, вам любой цикл тут подойдет, в том числе и for in

Последний раз редактировалось krutoy, 18.12.2014 в 11:38.
Ответить с цитированием
  #4 (permalink)  
Старый 18.12.2014, 11:48
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

krutoy,
Жаль только, что если вдруг названия полей не совпадают с массивом цикл упадет с ошибкой, и то что автор планирует делать перебор полей а не массива )
Ответить с цитированием
  #5 (permalink)  
Старый 18.12.2014, 12:27
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от krasovsky
Жаль только, что если вдруг названия полей не совпадают с массивом цикл упадет с ошибкой,
Жаль только, что ваша Экспертная оценка не имет ничего общего с реальностью
function myclass(a,b,c,d)
{
  this.a = a;
  this.foo = b;
  this.c = c;
  this.d = d;
}
  
example = new myclass(1,2,3,4);
const fieldnames = ["a","b","c","d"];
 
fieldnames.forEach(function(el){console.log(example[el])})


//  1
//  undefined
//  3
//  4

Сообщение от krasovsky
автор планирует делать перебор полей а не массива )
тогда несколько вопросов
1) почему нельзя делать перебор полей итерацией массива?
2) как Вы собирались
Сообщение от krasovsky
делать перебор полей а не массива )
Используя вот это
Сообщение от krasovsky
Используй forEach\while
Ответить с цитированием
  #6 (permalink)  
Старый 18.12.2014, 12:52
Новичок на форуме
Отправить личное сообщение для unrecovered Посмотреть профиль Найти все сообщения от unrecovered
 
Регистрация: 05.10.2014
Сообщений: 4

2krutoy
квадратные скобки позволяют брать имя из элемента! точняк, спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 18.12.2014, 13:52
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

krasovsky,
Могу посоветовать хорошего проктолога.
Ответить с цитированием
  #8 (permalink)  
Старый 18.12.2014, 16:10
Новичок на форуме
Отправить личное сообщение для unrecovered Посмотреть профиль Найти все сообщения от unrecovered
 
Регистрация: 05.10.2014
Сообщений: 4

Сообщение от krutoy Посмотреть сообщение
krasovsky,
Могу посоветовать хорошего проктолога.
зачем проктолог ему? баттхёрт-то у вас же
и кстати от вас я кроме кидания понтами ничего не видел
Ответить с цитированием
  #9 (permalink)  
Старый 18.12.2014, 16:22
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

krasovsky,
Я извиняюсь за резкость, я думал это ты там отписался по поводу батхерта. Этот мир полон олигофрении
Ответить с цитированием
  #10 (permalink)  
Старый 18.12.2014, 16:45
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Сообщение от krutoy
Этот мир полон олигофрении
Истинная правда!
Сообщение от krutoy
я думал это ты там отписался по поводу батхерта
Именно я.
А плюсанул именно господин unrecovered. Зачетно ты его отблагодарил.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к элементу массива arkada38 Angular.js 2 05.12.2014 09:08
Доступ к элементу по имени переменной sanyomix Общие вопросы Javascript 2 28.12.2012 09:31
Обращение к глобальной переменной из jQuery Иван Алексеев jQuery 6 13.08.2010 19:56
обратиться к элементу формы, заданному переменной Andrej_2 Элементы интерфейса 4 15.05.2009 08:18
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 14:25