来自单个数组

时间:2016-09-29 18:04:18

标签: javascript

我有一个带数字数据的数组,我需要定位数组内对象的值。

一个清楚的例子,这里是数据:

[
{1: 'one'},
{2: 'two'},
{3: 'three}
]

我正在减少它以获得我想要的那个,所以我留下了[{3: 'three'}]。 现在我如何获得'三'字符串?

非常感谢

5 个答案:

答案 0 :(得分:2)

使用bracket notation

  

不是有效的JavaScript标识符的任何属性名称(例如,具有空格或连字符的属性名称,或者以数字开头的 >)只能使用方括号表示法访问。当要动态确定属性名称时(在运行时之前未确定属性名称),此表示法也非常有用。

var obj = [{
  3: 'three'
}];
console.log(obj[0][3]);

如果密钥是不知道的:

var obj = [{
  3: 'three'
}];
console.log(obj[0][Object.keys(obj[0])]);

答案 1 :(得分:1)

你可以做到这一点,即使它有点混乱:

var d = [{3: 'three'}];
d[0][Object.keys(d[0])[0]]

这说明不知道他们的关键是什么,所以任何单一的条目对象都可以工作。

您可以使用另一个变量进行简化:

var _d = d[0];
_d[Object.keys(_d)[0]]

虽然理想情况下你会编写一个函数来封装它:

function firstValue(list) {
  return list[0][Object.keys(list[0])[0]];
}

希望对Object.values的支持能够清理它:

var d = [{3: 'three'}];
Object.values(d[0])[0]

答案 2 :(得分:1)

如果在过滤后,您只剩下一件商品并且您不知道密钥,则可以通过以下方式访问该值:

var obj = ([{3: 'three'}])[0];
obj[Object.keys(obj)[0]];

希望它有所帮助。

答案 3 :(得分:0)

如果您的数组是a = [{3: 'three'}],请使用

a[0][3]

第一个括号用于数组的索引。第二个括号用于字典3的键{3: 'three'}

如果要获得数组中包含的字典的单个元素的值,请使用

a[0][Object.keys(a[0])[0]]

但我还会对数组的长度和字典的长度添加一些检查。

答案 4 :(得分:0)

我猜这个问题的症结在于你不知道该放在第二个方位......

var a = {3: 'three'};
var val;
for (var i in a) val = a[i];  // val is now 'three'