从对象数组中,在某个索引处提取值 - >未定义

时间:2016-11-02 00:50:34

标签: javascript angularjs angular-fullstack

从一个对象数组中获取某个索引的值时遇到问题。

Array看起来像这样:

[Object, Object, Object, Object]

当我在Crome控制台中打开它们时,它看起来像这样:

enter image description here

问题是我想从其中一个对象中获取uuid的值。

如果我写console.log(this.myArray[0].uuid),我将从索引0获取uuid。

但是一旦我写console.log(this.myArray[index].uuid),其中index是一个数字,我只得到undefined

我已经尝试了

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

但这只是我的undefined

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:0)

如果你想要这样的索引循环数组

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

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

答案 1 :(得分:0)

我认为您在传递密钥时误解了_.map的工作原理:

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

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

因此,如果您希望访问 index 值,您可以直接从数组本身执行此操作。

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

indexes[0] // 4

答案 2 :(得分: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]);我又得到了undefined

问题是,我的方法看起来像这样:

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

index总是一个数字,我不知道,因为每次调用该方法时它都不同。

但由于某些原因,当我输入一个数字而不是index(也是一个数字)时,我会得到一个结果this.myArray[0].uuid。 但当我改为this.myArray[index].uuid时,我得到了未定义。

我甚至试过parseInt(index),但这也行不通。