2016-11-02 5 views
0

У меня возникла проблема в получении значения из определенной индексной формы массива объектов.Из массива объектов, значение извлечения по определенному индексу -> undefined

Массив выглядит так:

[Object, Object, Object, Object] 

Когда я открываю их в консоли CROME, это выглядит следующим образом:

enter image description here

Дело в том, что я хочу, значение uuid с одного из этих объектов.

Если я пишу console.log(this.myArray[0].uuid) я получаю UUID из индекса 0.

Но как только я пишу console.log(this.myArray[index].uuid), где индекс является числом, я только получить undefined.

Я уже пытался

var test = _.map(this.myArray,"uuid"); 
console.log(test[index].uuid) 

но только получить это я undefined

Может кто-то пожалуйста, помогите мне?

+2

Я хочу, чтобы вы выбрали 'test [index]', после карты. Метод map возвращает свойство 'uuid' в новый массив; вы относитесь к нему так, как будто это превращают объекты, у каждого из которых есть свойство 'uuid'. – Sampson

+0

Я просто попробовал 'var test = _.map (test [index] (this.mycards," uuid "));' 'console.log (test);' Но я получаю 'swipeToRate.controller.js : 189 Uncaught TypeError: Невозможно прочитать свойство «9» undefined (...) ' –

+0

Это потому, что' test [index] (this.mycards, «uuid») 'обрабатывает' test [index] 'как функцию, пытаясь передать' this.mycards' и '' uuid "' в качестве аргументов. Ну, на самом деле это еще одна проблема; это, кажется, жалуется, что 'test'' undefined'. – Sampson

ответ

0

если вы хотите массив индекс цикла как этот

for(var i = 0;i<this.myArray.length;i++){ 

console.log(this.myArray[i].uuid) 
} 
0

Я думаю, что вы ошибаетесь от того, как _.map работ при прохождении ключ:

let arr = [ 
    { index: 4, name: 'Hello' }, 
    { index: 9, name: 'World' } 
] 

_.map(arr, 'index') // produces [4, 9] 

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

let indexes = _.map(arr, 'index') 

indexes[0] // 4 
0

Я уже пробовал

var test = _.map(this.mycards,"uuid"); 
console.log(test); 
console.log(test[index]); 

кулак console.log

console.log(test); 

результаты в массиве со всеми UUID-х:

["3c539a73-d569-4512-b558-291164f34529", "b6920edc-77a8-4ac6-8fa3-65c7b05ea556", "9d8afb0c-5268-44a1-b02f-0772357025d0", "4a33b232-7c1d-4ee7-b53c-3615c0fbd7d3", "68888839-a888-4595-9be9-3ec07fe35850", "0ab242ca-e6e1-4497-871e-196c3a05e0ec", "0c311bc6-c396-45a9-865e-19cdc8800bf7", "3add00ad-7371-417a-89ae-e4f0966ab503", "ac503849-5476-4710-9c2e-a514a178c4f5"] 

но с console.log(test[index]); I снова получить undefined в результате.

Дело в том, что мой метод выглядит примерно так:

event(index, eventObject) { 
... 
}; 

и index всегда число, которое я не знаю, потому что он отличается каждый раз, когда метод вызывается.

Но по какой-то причине, когда я положил число вместо index (это тоже число) this.myArray[0].uuid Я получаю результат. Но когда я перехожу на this.myArray[index].uuid, я получаю undefined.

Я даже попробовал parseInt(index), но это также не сработало.