2017-01-31 1 views
0

У меня есть такой массив в моем class:Как выбрать значение из массива с помощью ключа

stuff = [ 
     { ['xwz']: 'https://site1.com' }, 
     { ['erx']: 'https://site2.com' }, 
     { ['qwery']: 'https://someurl-here.com' }, 
     { ['stuff']: 'http://morestuffhere.com' } 
    ] 

Я хочу, чтобы получить значение ('https://...'), передавая ключ как this.stuff['xwz'] но не работает таким образом. Есть идеи?

+1

Это создает * массив * из 4 элементов, каждый из которых содержит словарь (иначе называемый «обычный объект») с одиночными (и разными) ключами. 'stuff [0] ['xwz']' будет «работать». Однако, вероятно, было бы лучше выбрать единый ключ или использовать словарь вместо массива. – user2864740

ответ

3

Это должно выполнить эту работу.

// declare as 
stuff = { 
    'xwz': 'https://site1.com', 
    'erx': 'https://site2.com', 
    'qwery': 'https://someurl-here.com', 
    'stuff': 'http://morestuffhere.com' 
} 

// Access with 
this.stuff['xwz'] // returns 'https://site1.com' 
+1

зачем использовать 'this' для доступа к' stuff'? – shusson

+0

@shusson он был прав. Кстати. Мне нужно поставить 'this.', иначе я не могу получить доступ к' stuff' в моем 'class' – sreginogemoh

+0

@sreginogemoh имеет смысл, тогда вы можете обновить свой вопрос, чтобы отразить, что' stuff' является членом класса? nvm, вы уже это сделали :) – shusson

-1

Так как вы написали код, вам необходимо получить доступ к индексу массива, а затем объект ... как это (если вы используете свойство класса)

this.stuff[0].xwz // This will retrieve the first array element 

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

stuff = { 
    xwz: 'https://site1.com', 
    erx: 'https://site2.com', 
    qwery: 'https://someurl-here.com', 
    stuff: 'http://morestuffhere.com' 
} 

    this.stuff.xwz 
+1

Зачем использовать 'this' для доступа к' stuff'? – shusson

+0

, потому что это машинопись, и мы предполагаем, что 'stuff' является свойством экземпляра (например, глобальная переменная внутри класса,' this' относится к самому классу ... это похоже на свойство 'stuff'' this' класс) –

+1

, что является плохим предположением, пример не подразумевает, в какой области он находится. В JavaScript и, таким образом, в TypeScript, 'this' может даже не ссылаться на класс, это может быть объект окна. Подробнее о 'this' в руководстве TypeScript https://www.typescriptlang.org/docs/handbook/functions.html#this или http://yehudakatz.com/2011/08/11/understanding-javascript-function- invocation-and-this/ – shusson

Смежные вопросы